最近有需求,需要研究一下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'))
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“python rsa 加密解密”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2025年01月09日
2025年01月09日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]