python实现rsa加密解密,rsa加密文件 python

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

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