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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)