python实现rsa加密解密,rsa加密文件 python
这篇文章介绍了计算机编程语言使用南非共和国(南非共和国)库加密和解密的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
一、rsa库(推荐)
1、公钥加密、私钥解密
# -*-编码: utf-8 -*-
导入南非共和国
# rsa加密
def rsaEncrypt(str):
# 生成公钥、私钥
(pubkey,privkey)=rsa.newkeys(512)
打印( pub: ,pubkey)
打印( priv: ,privkey)
# 明文编码格式
content=str.encode(utf-8 )
# 公钥加密
crypto=rsa.encrypt(内容,公钥)
返回(加密,私钥)
# rsa解密
def rsaDecrypt(str,pk):
# 私钥解密
内容=rsa.decrypt(字符串,主键)
con=content.decode(utf-8 )
退货欺诈
(a,b)=rsaEncrypt(hello )
打印(加密后密文: a)
content=rsaDecrypt(a,b)
打印(解密后明文:内容)
2、密钥导出、签名验证
导入南非共和国
# 先生成一对密钥,然后保存。脉冲编码调制格式文件,当然也可以直接使用
(pubkey,privkey)=rsa.newkeys(1024)
pub=pubkey.save_pkcs1()
public file=open( public。PEM ,世行)
pubfile.write(pub)
pubfile.close()
pri=privkey.save_pkcs1()
prifile=open(private.pem , wb )
prifile.write(pri)
prifile.close()
#加载公钥和密钥
message=lovesoo.org
用打开( public.pem , rb )作为公共文件:
p=publickfile.read()
公钥=rsa .PublicKey.load_pkcs1(p)
打印(pubkey)
将打开( private.pem , rb )作为私有文件:
p=privatefile.read()
私钥=rsa .PrivateKey.load_pkcs1(p)
打印(私人密钥)
# 用公钥加密、再用私钥解密
加密=RSA。加密(消息。encode( utf-8 ),pubkey)
message=rsa.decrypt(crypto,privkey)
message=message.decode(utf-8 )
打印(消息)
#符号用私钥签名认证、再用公钥验证签名
签名=RSA。签名(消息。encode(“utf-8”)、privkey、“SHA-1”)
verify=rsa.verify(lovesoo.org ).编码( utf-8 ),签名、公钥)
打印(验证)
二、使用 Crypto.PublicKey.RSA库
1、使用 Crypto.PublicKey.RSA 生成公钥、私钥:
导入加密。公钥。南非共和国(Republic of South Africa)
导入加密。随意
x=加密PublicKey。RSA.generate(2048)
#加密PublicKey。RSA.generate(2048,加密Random.new().阅读)使用密码Random.new().阅读伪随机数生成器
a=x.exportKey(PEM) #生成私钥
b=x.publickey()。exportKey() #生成公钥
带有打开( a.pem , wb )作为x:
十。写(一)
打开( b.pem , wb )为x:
x.write(b)
2、使用 Crypto.PublicKey.RSA.importKey(private_key) 生成公钥和证书:
导入加密。公钥。南非共和国(Republic of South Africa)
打开( a.pem , rb )作为x:
xx=加密PublicKey。RSA.importKey(x.read())
b=xx.publickey().exportKey() #生成公钥
打开( b.pem , wb )为x:
x.write(b)
a=xx.exportKey(DER) #生成引伸出(派生的缩写)格式的证书
打开( a.der , wb )作为x:
十。写(一)
3、使用 Crypto进行RSA加解密
导入加密。公钥。南非共和国(Republic of South Africa)
导入加密密码。PKCS1_v1_5
导入加密。随意
导入加密。签名。PKCS1_v1_5
导入加密。混杂
y=babcdefg1234567
打开( b.pem , rb )作为x:
b=x.read()
密码_公共=加密密码。PKCS1_v1_5.new(Crypto .公钥。RSA.importKey(b))
密码文本=密码公开。加密(y) #使用公钥进行加密
打开( a.pem , rb )作为x:
a=x.read()
# 如果私钥有密码则使用相应密码密码PublicKey。RSA.importKey(a,密码)
cipher_private=加密密码。PKCS1_v1_5.new(Crypto .公钥。RSA.importKey(a))
text=cipher _ private解密(密码文本,加密).Random.new().阅读)#使用私钥进行解密
断言文本==y #断言验证
打开( c.pem , rb )作为x:
c=x.read()
c_rsa=加密。公钥。RSA.importKey(c)
签名者=加密。签名。PKCS1_v1_5.new(c_rsa)
msg_hash=CryptoHash。SHA256.new()
消息_散列。更新(y)
sign=signer.sign(消息散列)#使用私钥进行沙256签名
打开( d.pem , rb )作为x:
d=x.read()
d_rsa=加密公钥。RSA.importKey(d)
验证者=加密。签名。PKCS1_v1_5.new(d_rsa)
msg_hash=CryptoHash。SHA256.new()
消息_散列。更新(y)
Verify=verifer.verify (msg _ hash,sign) #使用公钥验证签名
打印(验证)
关于Python使用RSA库加密和解密的这篇文章到此为止。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。