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

posted @   hanfe1  阅读(355)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示