python3使用3des加密
安装pyDes
pip install pyDes
案例:
import pyDes
import base64
import os
data = 'hello'
key = os.urandom(24) # 随机生成24字节=> 3des
mode = pyDes.CBC # 使用CBC模式
IV = os.urandom(8) # 随机生成8字节的IV 8字节的倍数
k = pyDes.triple_des(key, mode, IV=IV, pad=None, padmode=pyDes.PAD_PKCS5) # 传入秘钥,模式和IV
d = k.encrypt(data) # 加密数据
base = base64.b64encode(d).decode() # 编码为base64字符串
print(base)
e = k.decrypt(base64.b64decode(base)) # 解码为字节串并解密
print(e.decode())
在Python中,对于3DES加密,其IV(初始化向量)的长度通常是8个字节。在使用pycryptodome库进行3DES加密时,你需要确保提供的密钥长度为24位。请注意,如果密钥长度不足24位,你可能需要对其进行补零;如果密钥长度超过24位,你需要截取其前24位。
pip install pycryptodome
import base64
from Crypto.Cipher import DES3
def des3(data_string):
# 3DES的MODE_CBC模式下只有前24位有意义
key = b'appapiche168comappapiche168comap'[0:24]
iv = b'appapiche168coma'[0:8]
plaintext = data_string.encode("utf-8")
# 使用MODE_CBC创建cipher
cipher = DES3.new(key, DES3.MODE_CBC, iv)
result = cipher.encrypt(pad(plaintext, 8)) # 使用PKCS5填充
return base64.b64encode(result).decode('utf-8')
加密出来的去验证一下 http://tool.chacuo.net/crypt3des