Python是一種流行的編程語言,它具有強大的加密功能。其中非對稱加密是一種常見的加密方式,它使用一對密鑰來加密和解密數據。
在Python中,可以使用Cryptographic Services (PyCryptodome)庫來進行非對稱加密。下面的代碼演示了如何使用RSA算法進行非對稱加密。
from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP import base64 # 生成RSA密鑰對 key = RSA.generate(2048) private_key = key.export_key() public_key = key.publickey().export_key() # 加密函數 def encrypt(message, public_key): rsa_key = RSA.import_key(public_key) cipher = PKCS1_OAEP.new(rsa_key) encrypted_message = cipher.encrypt(message) return base64.b64encode(encrypted_message) # 解密函數 def decrypt(ciphertext, private_key): rsa_key = RSA.import_key(private_key) cipher = PKCS1_OAEP.new(rsa_key) decrypted_message = cipher.decrypt(base64.b64decode(ciphertext)) return decrypted_message # 加密數據 message = b'secret message' encrypted_message = encrypt(message, public_key) print('Encrypted message:', encrypted_message) # 解密數據 decrypted_message = decrypt(encrypted_message, private_key) print('Decrypted message:', decrypted_message)
首先,我們生成一個2048位的RSA密鑰對。然后,我們定義了一個encrypt函數來加密數據,一個decrypt函數來解密數據。在encrypt函數中,我們首先將公鑰轉換為RSA密鑰對象,然后使用PKCS1_OAEP算法進行加密,并將結果進行了Base64編碼。在decrypt函數中,我們首先將私鑰轉換為RSA密鑰對象,然后使用PKCS1_OAEP算法進行解密,并將結果進行了Base64解碼。
然后,我們使用encrypt函數對一個字節串進行加密,并打印出加密后的結果。接著,我們使用decrypt函數對加密后的密文進行解密,并打印出解密后的原文。
通過這個例子,我們可以看到,在Python中使用非對稱加密非常容易,只需要使用PyCryptodome庫,并遵循一些簡單的加密和解密步驟。
上一篇vue admin 登錄
下一篇html實現在線注冊代碼