欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python密碼學(xué)RSA密碼解密教程

 更新時(shí)間:2022年05月24日 14:35:44   作者:菜鳥教程  
這篇文章主要為大家介紹了python密碼學(xué)RSA密碼解密教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

本章是前一章的延續(xù),我們使用RSA算法逐步實(shí)現(xiàn)加密,并詳細(xì)討論它.

用于解密密文的函數(shù)是as跟隨 :

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

對于公鑰加密或非對稱密鑰加密,重要的是要保持兩個(gè)重要的功能,即身份驗(yàn)證和授權(quán).

授權(quán)

授權(quán)是確認(rèn)發(fā)件人是唯一發(fā)送郵件的人的過程.以下代碼解釋了這個(gè) :

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)

身份驗(yàn)證

身份驗(yàn)證可以通過驗(yàn)證方法解釋,如下所示去;

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)

驗(yàn)證數(shù)字簽名以及發(fā)件人和收件人的詳細(xì)信息.為安全起見,這會(huì)增加更多的權(quán)重年齡.

RSA密碼解密

您可以使用以下代碼進(jìn)行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密碼學(xué)RSA密碼解密教程的詳細(xì)內(nèi)容,更多關(guān)于python密碼學(xué)RSA解密的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • pandas?如何將字符串映射為數(shù)字

    pandas?如何將字符串映射為數(shù)字

    這篇文章主要介紹了pandas?如何將字符串映射為數(shù)字,具有很好的參考價(jià)值,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • DataFrame 將某列數(shù)據(jù)轉(zhuǎn)為數(shù)組的方法

    DataFrame 將某列數(shù)據(jù)轉(zhuǎn)為數(shù)組的方法

    下面小編就為大家分享一篇DataFrame 將某列數(shù)據(jù)轉(zhuǎn)為數(shù)組的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 關(guān)于numpy中eye和identity的區(qū)別詳解

    關(guān)于numpy中eye和identity的區(qū)別詳解

    今天小編就為大家分享一篇關(guān)于numpy中eye和identity的區(qū)別詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python實(shí)現(xiàn)提前查詢考研成績功能

    Python實(shí)現(xiàn)提前查詢考研成績功能

    這篇文章主要介紹了Python實(shí)現(xiàn)提前查詢考研成績,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Python徹底刪除文件夾及其子文件方式

    Python徹底刪除文件夾及其子文件方式

    今天小編就為大家分享一篇Python徹底刪除文件夾及其子文件方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python使用三角迭代計(jì)算圓周率PI的方法

    python使用三角迭代計(jì)算圓周率PI的方法

    這篇文章主要介紹了python使用三角迭代計(jì)算圓周率PI的方法,實(shí)例分析了Python迭代算法的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 云原生Docker部署Django和mysql項(xiàng)目全過程

    云原生Docker部署Django和mysql項(xiàng)目全過程

    最近在學(xué)習(xí)用docker部署Django項(xiàng)目,經(jīng)過百折不撓的鼓搗,終于將項(xiàng)目部署成功,下面這篇文章主要給大家介紹了關(guān)于云原生Docker部署Django和mysql項(xiàng)目的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • python使用OS模塊操作系統(tǒng)接口及常用功能詳解

    python使用OS模塊操作系統(tǒng)接口及常用功能詳解

    os是?Python?標(biāo)準(zhǔn)庫中的一個(gè)模塊,提供了與操作系統(tǒng)交互的功能,在本節(jié)中,我們將介紹os模塊的一些常用功能,并通過實(shí)例代碼詳細(xì)講解每個(gè)知識(shí)點(diǎn)
    2023-06-06
  • pytorch 如何實(shí)現(xiàn)HWC轉(zhuǎn)CHW

    pytorch 如何實(shí)現(xiàn)HWC轉(zhuǎn)CHW

    這篇文章主要介紹了pytorch HWC轉(zhuǎn)CHW的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python 解決火狐瀏覽器不彈出下載框直接下載的問題

    Python 解決火狐瀏覽器不彈出下載框直接下載的問題

    這篇文章主要介紹了Python 解決火狐瀏覽器不彈出下載框直接下載的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03

最新評(píng)論