本文實(shí)例講述了Python下實(shí)現(xiàn)的RSA加密/解密及簽名/驗(yàn)證功能。分享給大家供大家參考,具體如下:
原文是py2環(huán)境,而我的環(huán)境是py3,所以對(duì)原代碼做了修改:decode(), encode()
import rsa# 生成密鑰(pubkey, privkey) = rsa.newkeys(1024)# 保存密鑰with open('public.pem','w+') as f: f.write(pubkey.save_pkcs1().decode())with open('private.pem','w+') as f: f.write(privkey.save_pkcs1().decode())# 導(dǎo)入密鑰with open('public.pem','r') as f: pubkey = rsa.PublicKey.load_pkcs1(f.read().encode())with open('private.pem','r') as f: privkey = rsa.PrivateKey.load_pkcs1(f.read().encode())# 明文message = 'hello'# 公鑰加密crypto = rsa.encrypt(message.encode(), pubkey)# 私鑰解密message = rsa.decrypt(crypto, privkey).decode()print(message)# 私鑰簽名signature = rsa.sign(message.encode(), privkey, 'SHA-1')# 公鑰驗(yàn)證rsa.verify(message.encode(), signature, pubkey)改進(jìn)版:
import rsa# 生成密鑰(pubkey, privkey) = rsa.newkeys(1024)# =================================# 場(chǎng)景 主站蜘蛛池模板: 巢湖市| 中卫市| 剑川县| 循化| 天气| 北安市| 兰西县| 牡丹江市| 繁峙县| 调兵山市| 海原县| 偃师市| 盘锦市| 大渡口区| 包头市| 綦江县| 苍溪县| 台北县| 山东| 高州市| 安岳县| 惠东县| 湖州市| 阿勒泰市| 左云县| 巴林右旗| 邯郸市| 桂林市| 滁州市| 新津县| 津南区| 榆林市| 萝北县| 徐闻县| 广东省| 兰州市| 崇州市| 长岛县| 顺平县| 昭觉县| 沈阳市|