溫馨提示×

Python加密與解密能加密啥

小樊
93
2024-11-02 18:57:34
欄目: 編程語言

Python 加密和解密可以用于保護數據的隱私和安全。常見的加密和解密方法有:

  1. 對稱加密算法(如 AES、DES、3DES):加密和解密使用相同的密鑰。
  2. 非對稱加密算法(如 RSA、ECC):使用一對公鑰和私鑰進行加密和解密。
  3. 散列算法(如 SHA-256、MD5):用于數據完整性校驗和密碼存儲,而不是加密。
  4. 混合加密體系:結合以上多種方法以提高安全性。

以下是一個簡單的 AES 加密和解密示例:

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
import base64

# 加密函數
def encrypt(data, key):
    cipher = AES.new(key, AES.MODE_CBC)
    ct_bytes = cipher.encrypt(pad(data.encode('utf-8'), AES.block_size))
    iv = base64.b64encode(cipher.iv).decode('utf-8')
    ct = base64.b64encode(ct_bytes).decode('utf-8')
    return iv + ':' + ct

# 解密函數
def decrypt(encrypted_data, key):
    iv, ct = encrypted_data.split(':')
    iv = base64.b64decode(iv)
    ct = base64.b64decode(ct)
    cipher = AES.new(key, AES.MODE_CBC, iv)
    return unpad(cipher.decrypt(ct), AES.block_size).decode('utf-8')

# 示例
key = get_random_bytes(16)  # 生成一個隨機的 AES 密鑰
data = 'Hello, World!'
encrypted_data = encrypt(data, key)
print('加密后的數據:', encrypted_data)
decrypted_data = decrypt(encrypted_data, key)
print('解密后的數據:', decrypted_data)

請注意,這個示例需要安裝 pycryptodome 庫??梢允褂靡韵旅畎惭b:

pip install pycryptodome

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女