python rsa 公钥解密,公钥算法是非对称加密算法

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: