
RSA 密碼加密
在本章中,我們將重點關注 RSA 密碼加密的不同實現和涉及的函式。你可以參考或包含此 python 檔案來實現 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"
由於安全性較好,我們將雜湊值初始化為 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)
加密時,使用下列函式,其中遵循 RSA 演算法:
def encrypt(message, pub_key): cipher = PKCS1_OAEP.new(pub_key) return cipher.encrypt(message)
兩個引數是必須的:訊息和公鑰,公鑰指公鑰。公鑰用於加密,私鑰用於解密。
完整加密程式如下:
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)
廣告