DEV Community

drake
drake

Posted on

AES加密

安装依赖

pip install pycryptodome 
Enter fullscreen mode Exit fullscreen mode
from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad import base64, os # AES CBC 模式简单实现 def aes_encrypt(key: bytes, plaintext: str) -> str: iv = os.urandom(16) cipher = AES.new(key, AES.MODE_CBC, iv) ct = cipher.encrypt(pad(plaintext.encode(), AES.block_size)) return base64.b64encode(iv + ct).decode() def aes_decrypt(key: bytes, ciphertext_b64: str) -> str: raw = base64.b64decode(ciphertext_b64) iv, ct = raw[:16], raw[16:] cipher = AES.new(key, AES.MODE_CBC, iv) pt = unpad(cipher.decrypt(ct), AES.block_size) return pt.decode() # 示例 if __name__ == "__main__": key = b"1234567890abcdef" # 16 字节 = AES-128;可换成 32 字节 = AES-256  text = "Hello AES!" enc = aes_encrypt(key, text) print("加密后:", enc) dec = aes_decrypt(key, enc) print("解密后:", dec) 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)