python密码学RSA密码解密教程

 更新时间:2022年05月24日 14:35:44   作者:菜鸟教程  
这篇文章主要为大家介绍了python密码学RSA密码解密教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

本章是前一章的延续,我们使用RSA算法逐步实现加密,并详细讨论它.

用于解密密文的函数是as跟随 :

def decrypt(ciphertext, priv_key):
   cipher = PKCS1_OAEP.new(priv_key)
   return cipher.decrypt(ciphertext)

对于公钥加密或非对称密钥加密,重要的是要保持两个重要的功能,即身份验证和授权.

授权

授权是确认发件人是唯一发送邮件的人的过程.以下代码解释了这个 :

def sign(message, priv_key, hashAlg="SHA-256"):
   global hash
   hash = hashAlg
   signer = PKCS1_v1_5.new(priv_key)
   
   if (hash == "SHA-512"):
      digest = SHA512.new()
   elif (hash == "SHA-384"):
      digest = SHA384.new()
   elif (hash == "SHA-256"):
      digest = SHA256.new()
   elif (hash == "SHA-1"):
      digest = SHA.new()
   else:
      digest = MD5.new()
   digest.update(message)
   return signer.sign(digest)

身份验证

身份验证可以通过验证方法解释,如下所示去;

def verify(message, signature, pub_key):
   signer = PKCS1_v1_5.new(pub_key)
   if (hash == "SHA-512"):
      digest = SHA512.new()
   elif (hash == "SHA-384"):
      digest = SHA384.new()
   elif (hash == "SHA-256"):
      digest = SHA256.new()
   elif (hash == "SHA-1"):
      digest = SHA.new()
   else:
      digest = MD5.new()
   digest.update(message)
   return signer.verify(digest, signature)

验证数字签名以及发件人和收件人的详细信息.为安全起见,这会增加更多的权重年龄.

RSA密码解密

您可以使用以下代码进行RSA密码解密 :

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto.Signature import PKCS1_v1_5
from Crypto.Hash import SHA512, SHA384, SHA256, SHA, MD5
from Crypto import Random
from base64 import b64encode, b64decode
hash = "SHA-256"
def newkeys(keysize):
   random_generator = Random.new().read
   key = RSA.generate(keysize, random_generator)
   private, public = key, key.publickey()
   return public, private
def importKey(externKey):
   return RSA.importKey(externKey)
def getpublickey(priv_key):
   return priv_key.publickey()
def encrypt(message, pub_key):
   cipher = PKCS1_OAEP.new(pub_key)
   return cipher.encrypt(message)
def decrypt(ciphertext, priv_key):
   cipher = PKCS1_OAEP.new(priv_key)
   return cipher.decrypt(ciphertext)
def sign(message, priv_key, hashAlg = "SHA-256"):
   global hash
   hash = hashAlg
   signer = PKCS1_v1_5.new(priv_key)
   
   if (hash == "SHA-512"):
      digest = SHA512.new()
   elif (hash == "SHA-384"):
      digest = SHA384.new()
   elif (hash == "SHA-256"):
      digest = SHA256.new()
   elif (hash == "SHA-1"):
      digest = SHA.new()
   else:
      digest = MD5.new()
   digest.update(message)
   return signer.sign(digest)
def verify(message, signature, pub_key):
   signer = PKCS1_v1_5.new(pub_key)
   if (hash == "SHA-512"):
      digest = SHA512.new()
   elif (hash == "SHA-384"):
      digest = SHA384.new()
   elif (hash == "SHA-256"):
      digest = SHA256.new()
   elif (hash == "SHA-1"):
      digest = SHA.new()
   else:
      digest = MD5.new()
   digest.update(message)
   return signer.verify(digest, signature)

以上就是python密码学RSA密码解密教程的详细内容,更多关于python密码学RSA解密的资料请关注脚本之家其它相关文章!

相关文章

  • pandas 如何将字符串映射为数字

    pandas 如何将字符串映射为数字

    这篇文章主要介绍了pandas 如何将字符串映射为数字,具有很好的参考价值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • DataFrame 将某列数据转为数组的方法

    DataFrame 将某列数据转为数组的方法

    下面小编就为大家分享一篇DataFrame 将某列数据转为数组的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 关于numpy中eye和identity的区别详解

    关于numpy中eye和identity的区别详解

    今天小编就为大家分享一篇关于numpy中eye和identity的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python实现提前查询考研成绩功能

    Python实现提前查询考研成绩功能

    这篇文章主要介绍了Python实现提前查询考研成绩,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Python彻底删除文件夹及其子文件方式

    Python彻底删除文件夹及其子文件方式

    今天小编就为大家分享一篇Python彻底删除文件夹及其子文件方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python使用三角迭代计算圆周率PI的方法

    python使用三角迭代计算圆周率PI的方法

    这篇文章主要介绍了python使用三角迭代计算圆周率PI的方法,实例分析了Python迭代算法的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 云原生Docker部署Django和mysql项目全过程

    云原生Docker部署Django和mysql项目全过程

    最近在学习用docker部署Django项目,经过百折不挠的鼓捣,终于将项目部署成功,下面这篇文章主要给大家介绍了关于云原生Docker部署Django和mysql项目的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • python使用OS模块操作系统接口及常用功能详解

    python使用OS模块操作系统接口及常用功能详解

    os是 Python 标准库中的一个模块,提供了与操作系统交互的功能,在本节中,我们将介绍os模块的一些常用功能,并通过实例代码详细讲解每个知识点
    2023-06-06
  • pytorch 如何实现HWC转CHW

    pytorch 如何实现HWC转CHW

    这篇文章主要介绍了pytorch HWC转CHW的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python 解决火狐浏览器不弹出下载框直接下载的问题

    Python 解决火狐浏览器不弹出下载框直接下载的问题

    这篇文章主要介绍了Python 解决火狐浏览器不弹出下载框直接下载的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03

最新评论