全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

python rsa 加密解密

最近有需求,需要研究一下RSA加密解密安全;在网上百度了一下例子文章,很少有文章介绍怎么保存、传输、打印加密后的文本信息,都是千篇一律的。直接在一个脚本,加密后的文本信息赋于变量,然后立马调用解密。仔细想了一下RSA加密解密的过程,确定有二端,一端为:加密端,一端为解密端,一般不在同一台机器。在这里,我只模拟了保存在文件,然后再读出来;关于怎以通过网络传输,也是大同小异。

用RSA加密后的密文,是无法直接用文本显示,因为存在一些无法用文本信息编码显示的二进制数据。对于保存,网络传输,打印不乱码,需要通base64编码进行转换;base64编解码能把一些无法直接用文件本信息编码的二进制数据,转换成常规的二进制数据。

 #/usr/bin/env python
# -*- coding: utf-8 -*-
import rsa
import sys
import base64
# 打印 python 版本 与 windows 系统编码
print("---- 1 ----")
print(sys.version)
print(sys.getdefaultencoding())
print(sys.getfilesystemencoding())
# 先生成一对密钥,然后保存.pem格式文件,当然也可以直接使用
print("---- 2 ----")
(pubkey, privkey) = rsa.newkeys(1024)
pub = pubkey.save_pkcs1()
print(type(pub))
pubfile = open('public.pem','w+')
pubfile.write(pub.decode('utf-8'))
pubfile.close()
print("---- 3 ----")
pri = privkey.save_pkcs1()
print(type(pri))
prifile = open('private.pem','w+')
prifile.write(pri.decode('utf-8'))
prifile.close()
# load公钥和密钥
print("---- 4 ----")
message = 'dPabdbGDpFTrwwgydVafdlsadlfsal%46645645s'
print('message:',type(message))
with open('public.pem') as publickfile:
 p = publickfile.read()
 print(type(p))
 pubkey = rsa.PublicKey.load_pkcs1(p.encode('utf-8'))
with open('private.pem') as privatefile:
 p = privatefile.read()
 print(type(p))
 privkey = rsa.PrivateKey.load_pkcs1(p.encode('utf-8'))
# 用公钥加密、再用私钥解密
crypto = rsa.encrypt(message.encode('utf-8'),pubkey)
print(crypto)
print("---- 5 ----")
print('crypto:',type(crypto))
print('cry_base64:',base64.encodestring(crypto))
print('cry_base64_utf8:',base64.encodestring(crypto).decode('utf-8'))
# 保存到本地文件
cry_file = open('cry_file.txt','w+')
cry_file.write(base64.encodestring(crypto).decode('utf-8'))
cry_file.close()
print("---- 6 ----")
# 从本地文件读取
cry_file = open('cry_file.txt','r')
cry_text = ''
for i in cry_file.readlines():
 cry_text += i
print('cry_text_type:',type(cry_text))
print('cry_text:',cry_text)
print('cry_base64:',cry_text.encode('utf-8'))
crypto_tra = base64.decodestring(cry_text.encode('utf-8'))
print("---- 7 ----")
assert crypto == crypto_tra
print(crypto)
print("---- 8 ----")
plaintext = rsa.decrypt(crypto,privkey)
assert message == plaintext.decode('utf-8')
print(plaintext.decode('utf-8'))

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# python  # rsa  # rsa加密解密  # python实现RSA加密(解密)算法  # python使用rsa加密算法模块模拟新浪微博登录  # Python下实现的RSA加密/解密及签名/验证功能示例  # Python实现RSA加密解密  # python实现rsa加密实例详解  # python中的RSA加密与解密实例解析  # Python实现的rsa加密算法详解  # python rsa实现数据加密和解密、签名加密和验签功能  # Python使用RSA库加密和解密  # 如何用Python实现RSA加密算法  # 二进制数  # 都是  # 网络传输  # 加密解密  # 公钥  # 在这里  # 我只  # 一台  # 想了  # 可以直接  # 大同小异  # 能把  # 再用  # 转换成  # 再读  # 在网上  # 编解码  # 赋于  # sys  # windows 


相关文章: 成都品牌网站制作公司,成都营业执照年报网上怎么办理?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  深圳网站制作的公司有哪些,dido官方网站?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  ,石家庄四十八中学官网?  如何基于PHP生成高效IDC网络公司建站源码?  常州自助建站工具推荐:低成本搭建与模板选择技巧  如何快速查询域名建站关键信息?  如何在IIS服务器上快速部署高效网站?  建站主机服务器选型指南与性能优化方案解析  临沂网站制作公司有哪些,临沂第四中学官网?  定制建站是什么?如何实现个性化需求?  开源网站制作软件,开源网站什么意思?  建站之星如何通过成品分离优化网站效率?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  javascript中对象的定义、使用以及对象和原型链操作小结  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  宁波自助建站系统如何快速打造专业企业网站?  实现虚拟支付需哪些建站技术支撑?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  南平网站制作公司,2025年南平市事业单位报名时间?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  如何在阿里云部署织梦网站?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  Android滚轮选择时间控件使用详解  如何在局域网内绑定自建网站域名?  建站主机选哪家性价比最高?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  移民网站制作流程,怎么看加拿大移民官网?  如何在宝塔面板中创建新站点?  如何挑选最适合建站的高性能VPS主机?  金*站制作公司有哪些,金华教育集团官网?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  建站之星如何助力网站排名飙升?揭秘高效技巧  ,南京靠谱的征婚网站?  如何配置WinSCP新建站点的密钥验证步骤?  郑州企业网站制作公司,郑州招聘网站有哪些?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  活动邀请函制作网站有哪些,活动邀请函文案?  如何在自有机房高效搭建专业网站?  建站之星后台管理如何实现高效配置?  ,怎么用自己头像做动态表情包?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  建站ABC备案流程中有哪些关键注意事项?  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何配置FTP站点权限与安全设置? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。