首页 » 网站建设 » phprsa私钥位数技巧_Python的RSA操作私钥与公钥

phprsa私钥位数技巧_Python的RSA操作私钥与公钥

duote123 2024-12-14 0

扫一扫用手机浏览

文章目录 [+]

RSA公开密钥密码系统编制的事理是:

根据数论,寻求两个大素数比较大略,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥 。

phprsa私钥位数技巧_Python的RSA操作私钥与公钥

关于RSA的普通的阐明:

phprsa私钥位数技巧_Python的RSA操作私钥与公钥
(图片来自网络侵删)

利用规定的方法天生一对密钥,一个作为私钥,一个作为公钥;

一段数据通过私钥加密,必须通过公钥解密;反之亦然。

私钥自己保管,公钥对外公开。

比如:理思录的私钥A(理思录),公钥B(理思录)

九赢百信的私钥C(九赢百信),公钥D(九赢百信)

比如:九赢百信希望发送一条信息M给理思录,不肯望他人知晓传输的内容,即便获取了数据,也不能解析个中的内容。
那么这个人就用公钥B(理思录)去加密这个信息M,变成了X。

当理思录收到了X,就用自己的私钥A(理思录)去解密,解密后才能看到真正的信息M。

这样,理思录可以收到信息M,可是并不知道信息是谁发出的。

为此,信息M在九赢百信发送信息之前,利用自己的私钥C(九赢百信)将信息M加密为N,可以附加自己的公钥信息,然后再通过公钥B(理思录)进行其余一次加密,成为P。

这样,当理思录收到P,之后,先用自己的私钥A(理思录)解密,然后利用公钥D(九赢百信)进行解密。

公钥的公布须要一些类的规定和程序,担保他是可信性。

双钥技能的加密和解密耗费的韶光比较大,常日利用这种技能来传输密码,通过密码来解密要传输的数据。

现在用python调用库实现RSA密钥的天生。

安装:pip install rsa

#pip install rsaimport rsa(pubkey,privkey)=rsa.newkeys(1024)print(pubkey)print(privkey)pub=pubkey.save_pkcs1()pubfile=open('public.pem','wb')pubfile.write(pub)pubfile.close()pri=privkey.save_pkcs1()privkey=open('private.pem','wb')privkey.write(pri)privkey.close()

天生的文件如下图:

import rsa # rsa加密def rsaEncrypt(str): # 天生公钥、私钥 (pubkey, privkey) = rsa.newkeys(512) print("公钥:\n%s\n私钥:\n:%s" % (pubkey, privkey)) # 明文编码格式 content = str.encode("utf-8") # 公钥加密 crypto = rsa.encrypt(content, pubkey) return (crypto, privkey) # rsa解密def rsaDecrypt(str, pk): # 私钥解密 content = rsa.decrypt(str, pk) con = content.decode("utf-8") return con if __name__ == "__main__": str, pk = rsaEncrypt("hello") print("加密后密文:\n%s" % str) content = rsaDecrypt(str, pk) print("解密后明文:\n%s" % content)

===================== RESTART: E:/python code/其他/RSA_T01.py ====================

公钥:

PublicKey(9111873236249849209686819369076356655660892337807985520901675955833176249049269417595657300043866173262409777435981355116449943828841734063225123542228361, 65537)

私钥:

:PrivateKey(9111873236249849209686819369076356655660892337807985520901675955833176249049269417595657300043866173262409777435981355116449943828841734063225123542228361, 65537, 2265976623958985648099177290342958340692451948084205075295718673850940787996298407753473721435820250048228469715958524626179351450461377903271599676389673, 5159625978049603036154695303556767905690916535211950049558224975601481091096127691, 1765994914168999577067848938883684661085876986183189630983114088404405371)

加密后密文:

b'f\xbe\xb8\xfd\xa9#\n\x98\xc3\xc0{\xd0n\x17\x10\xfb^\xfd\xdf(\xb41\x1e\x06Ij\xd8\x9a\xd2P\xc2]H\xa4\xeb$\xbd+}b\xd4\x1a \xfb\xee:E\xd0r\x0e\xdcH\xb0v\xd8\xc4\xb1\x94Q\xda,\xc2\xbd\xdd'

解密后明文:

hello

标签:

相关文章

大数据独胆,挖掘数据潜力,引领商业创新

随着互联网技术的飞速发展,大数据时代已经到来。大数据独胆作为一种创新性的商业模式,通过挖掘海量数据中的潜在价值,为企业提供精准的市...

网站建设 2024-12-16 阅读0 评论0

大数据时代,压住信息洪流,挖掘智慧价值

在信息爆炸的今天,大数据已成为各行各业不可或缺的核心资源。如何压住这股信息洪流,挖掘大数据的智慧价值,成为了我们面临的重要课题。本...

网站建设 2024-12-16 阅读0 评论0