python rsa 公钥解密,python字符串加密算法
一环境
Windows7 x64
Python 2.7.14
两个步骤
我)输入明文
二)生成公匙、私匙
三)输出密文
四)检查。
代码3
3.1配置南非共和国(南非共和国)库
该方案在南非共和国库中实现,外壳可以用以下代码安装南非共和国库:
输入
点安装南非共和国
输出功率
用点安装rsa。
3.2输入明文
输入明文。
输入
代码=测试1
VerifyCode=Test1
输出功率
"测试1 "以明文保存在代码中。
保存在验证码中的"测试1 "将用于检查。
3.3加密密钥生成
生成密钥并将其保存为。脉冲编码调制文件。
输入
(pubkey,privkey )=RSA.newkeys (2048))))))))。
pub=pubkey.save_pkcs1(
pubfile=open(public .PEM , w ))
pubfile.write(pub)
pubfile.close(
pri=privkey.save_pkcs1(
prifile=open(private .PEM , w )。
prifile.write(pri))。
prifile.close(
输出功率
一)2048年位南非共和国(南非共和国)加密密钥对(公匙和私匙;
二)公共。脉冲编码调制上保存的公匙;
三)存储在private.pem中的私钥。
小费。脉冲编码调制文件可以在记事本中打开
3.4密文生成
首先用以下代码读取公匙、私匙。
输入
消息=代码
withopen(public .PEM)作为公共文件:
p=publickfile.read(
pubkey=RSA。公钥。load _ PK CS1(p)).
withopen(private .PEM)作为私有文件:
p=privatefile.read(
privkey=RSA。私钥。装载_主键CS1(p)
输出功率
加入公匙、私匙。
用以下代码加密明文,与Base64代码组合输出。
输入
#密文写入文件
efcypherwriter(cyphercodename):
f=打开( cyphertext.txt , w )。
f .写(密码)
f.close()
crypto=RSA.encrypt(
crypto 64=base64.b 64编码(密码).
密码作者(crypto64)。
打印(thecyphertextis:)。
打印脚本64
输出功率
输出以下密文并写入密码文本文件:
密文是:
cuauynu 7k laq 3 bww azar 5 liou sn 0 ZL GD l5 fxpzzkehoyfwnf 8 me 28 cmrmyepof 0 JSC 4x 91x rsx 8j LX 0 frnpjke/cjb wixe 6 le OTC 4 zekzsd 3 pqhyouxty 0 GL 8 dsosrkxx 6s 53e tw S4 jot ye 9 FQ B2 hry QA 25 fh5 nifelqnd JVM 17 xdhjof 8/bc6/fxey 1 npkvklq 9
小费
加密输出的文本必须是十六进制,并且必须使用Base64编码才能正常打印,而不是全部可打印的字符。
3.5检查和签名
用Base64解密密文,用私人匙解密,通过以下代码实现
输入
crypto=base64.b 64解码(加密64)。
message=RSA.decrypt(crypto,privkey))。
打印(代码是:).
打印消息
输出功率
代码是:
测试一
用私钥签名认证,用公钥验证签名,在签名一致的情况下程序可以正常编译。
输入
signature=RSA.sign(消息,私钥、‘SHA-1’)))))))。
RSA.verify(验证代码,签名,公钥).
输出功率
如果签名正确,程序将正常编译。
四全文
代码全文如下:
#-* -编码:utf-8-* -
#作者:Myoontyee
#描述:RSA
导入南非共和国
导入基础64
#密文写入文件
efcypherwriter(cyphercodename):
f=打开( cyphertext.txt , w )。
f .写(密码)
f.close()
#初始化
代码=测试1
VerifyCode=Test1
#生成并保存密钥对
(公钥,私钥)=RSA .纽基斯(2048))))))))).
pub=pubkey.save_pkcs1(
pubfile=open(public .PEM , w ))
pubfile.write(pub)
pubfile.close(
pri=privkey.save_pkcs1(
prifile=open(private .PEM , w )。
prifile.write(pri))。
prifile.close(
#加载公钥和密钥
消息=代码
withopen(public .PEM)作为公共文件:
p=publickfile.read(
pubkey=RSA。公钥。load _ PK CS1(p)).
withopen(private .PEM)作为私有文件:
p=privatefile.read(
privkey=RSA。私钥。装载_主键CS1(p)
#用公钥加密,用Base64编码后输出
crypto=RSA.encrypt(
crypto 64=base64.b 64编码(密码).
密码作者(crypto64)。
打印(thecyphertextis:)。
打印脚本64
用Base64解密,用私钥解密
crypto=base64.b 64解码(加密64)。
message=RSA.decrypt(crypto,privkey))。
打印(代码是:).
打印消息
#签名用私钥签名认证,用公钥验证签名
signature=RSA.sign(消息,私钥、‘SHA-1’)))))))。
RSA.verify(验证代码,签名,公钥).
5参照
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。