python rsa 公钥解密,公钥算法是非对称加密算法
Boblee毕业于人工智能硕士学位。她擅长python,有爱好。她研究基于python的人工智能、群体智能、区块链等技术,利用python开发前端和后端以及爬虫。
1公钥关系
非对称加密算法需要两个密钥来加密和解密。这两个私钥分别是公钥(公钥)和私钥(私钥)。
公钥(Public key)和私钥(private key)是算法得到的密钥对,即公钥和私钥对。公钥是密钥对的公开部分,而私钥是非公开部分。公钥通常用于加密会话密钥、验证数字签名或加密可以用适当的私钥解密的数据。通过该算法获得的密钥对保证在世界上是唯一的。使用这个密钥对时,如果数据用一个密钥加密,就必须用另一个密钥解密。例如,用公钥加密的数据必须用私钥解密。当用私钥加密时,也必须用公钥解密。否则,解密不会成功。(此处引用百度百科词条解释)
常见的非对称加密算法包括rsa和椭圆加密(esa)。
RSA算法应用广泛,包括加密和认证。
1.加密(保证数据安全))。
要用公钥加密,必须用私钥解密。
这被广泛用于确保数据安全。当用户使用自己的公钥,所有者向用户发送数据时,他用公钥加密,但只有用户可以用自己的私钥解密,从而保证了数据的安全性。
2.认证(用于身份判断))
要用私钥签名,必须用公钥验证签名。
用户也玩自己的公钥,在给别人发送数据的时候,用自己的私钥加密。在这里,我们更愿意称之为签名。然后,别人用公钥验证签名,如果解密成功,就可以判断对方的身份。
2.实现2.python
本文基于python实现了rsa非对称加密算法的公钥生成、私钥签名和公钥验证过程。
安装python库
Pipinstallpycrypto(建议选择对应的whl文件))。
2.公钥私钥的生成
从cryptoimportrandomfromcrypto导入base 64。来自crypto的hashimportsha256from。publickkeyimportsarafromcrypto。signatureimportpkcs生成公钥:return: public,Secret base64编码字符串 #,伪随机数生成器random_generator=Random.new))、密钥对生成器实例random_generator(#生成私钥保存private_pem=rsa.exportKey) #生成公钥保存public _ PEM=rsa.publickey)。exportkey)
3.私钥签名
Efen _ sign (private _ key,Ign _ data): 私钥签名:param private_key:私钥base64编码字符串:param unsigned _ data:已签名数据:返回:签名字符串 RSA key=encoding= utf8 )(signer=signature _ PK CS1 _ v1 _ 5。new (RSA密钥)digest=sha 256 . new))digest . update)
4.用公钥检查签名
Defverify_sign(pubkey,data,sign):“”:param pubkey:公钥base64编码字符串:param data: raw data: param sign:签名字符串:return:验证结果为true,false RSA key=RSA . import key(base64 . b 64 decode(bytes)pubkey,encoding= utf8 )(verifier=signature _ PK CK)
3.3.python的实现结果
data=bobleepub,prv=get_key () sign
=gen_sign(prv,data)result=verify_sign(pub,data,sign)
公钥和私钥生成
公钥是:ls 0 TLS 1 crudjtibqvujmsumgs 0 vzls 0 TLS 0 kt ljklqqquq 5 cz 2 txagtprzl 3 mejbuvgqufpq 0 froefnslcq 2 dlq 0 frrufuszxswjjanxrkw 2 setpvmzqovdxbebnvhz 2 noutvqbfyxr 0 rmmthhaerumuz 4 bla 2 qjhnqzsz fo 1 ctn kg 1 GM 0 piuujsazd 5 rfzmqkrzcko 1v 0故障私钥是:ls 0 TLS 1 crudjtibsu 0 egfvkfursblrvktls 0 tlqpnslfb 2 djqkfbs 0 nbuvbbjy 2v 0 liswp 4 muzmnkhlavrwmuvdxbenvhz 2 noutvqbfyxr 0 rmmthhaerumuz 4cm 5 qnki 4 z0 mzimmerzzdherdhhnksfbgs 3 eu yztfbbqjec 0或1v 0 dyzzzfdav 1 zir 3 rmw NCR 2 tdhoreckunoshd
签名生成
签名是:xnnloytfqjariques 3 lzza 0 wgiy 3 tmejfwpwewrwwwwqwk 6 wqhi 5 fow 3 z3dr 5 cxzjhrlnpm 6 cjku 4 KH 6 xdxmhbqqqpvya 8 ecbcym 4 t1 hdvqvqqvqp 85 p/rhiqgztli 8 hza 0 w7zd 3u 02 kvfyb 4 ge glfo 4 JC 3 jgaszaib 1 ynx 0 mj cos qurs 2年30 rtb 2
结果
真的吗
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。