第一步 安裝python第三方包 pycryptodome
pip install pycryptodome
第二步 使用密鑰新建aes加解密對(duì)象
from Crypto.Cipher import AES
KEY = '你的密鑰' # 必須是16位, 32位等2的4+次冪
# 使用你的KEY創(chuàng)建加密對(duì)象, 加密模式為ECB
# 這里使用ECB比較方便, 但是據(jù)說(shuō)安全性比其他模式稍差(安全方面沒(méi)有了解過(guò))
aes = AES.new(str.encode(KEY), AES.MODE_ECB)
第三步 加密
這里一般需要使用到base64包
import base64
pwd = '你的密碼string' # 密碼不足16位向左補(bǔ)@符號(hào), 并轉(zhuǎn)換為bytes
encode_pwd = str.encode(pwd.rjust(16, '@')) # 使用aes加密bytes并使用base64編碼bytes
encrypt_str = str(base64.encodebytes(aes.encrypt(encode_pwd)), encoding='utf-8')
encrypt_str就是你獲得的加密后的字符串
第四步 解密
decrypt_str = (aes.decrypt(base64.decodebytes(encrypt_str.encode(encoding='utf-8'))).decode().replace('@', ''))
說(shuō)明:
- 先使用base64解碼encrypt_str的bytes
- 再使用aes.decrypt解密bytes
- 使用decode() 將解密后的bytes轉(zhuǎn)化為str
- 使用replace替換掉之前補(bǔ)位用的@符號(hào)
完整代碼如下(辣雞代碼隨意轉(zhuǎn)載使用):
import base64
from Crypto.Cipher import AES
KEY = '你的密鑰' # 必須是16位, 32位等2的4+次冪
aes = AES.new(str.encode(KEY), AES.MODE_ECB)
pwd = '你的密碼string'
# 密碼不足16位向左補(bǔ)@符號(hào), 并轉(zhuǎn)換為bytes
encode_pwd = str.encode(pwd.rjust(16, '@'))
# 使用aes加密bytes并使用base64編碼bytes
encrypt_str = str(base64.encodebytes(aes.encrypt(encode_pwd)), encoding='utf-8')
decrypt_str = (
aes.decrypt(base64.decodebytes(encrypt_str.encode(encoding='utf-8')))
.decode()
.replace('@', '')
)