DES加密密钥超过8位的问题

有时使用DES加密时密钥超过8位报错,这种情况常见于使用Python实现JavaScript的场景中,从JavaScript获取的密钥有时不止8位。

在使用pyDes实现DES加密时,初始化des是必须要8位密码的,但是我们可以先通过使用一个随意的8位密钥先初始化des对象,然后调用setkey()方法传入超过8位的密钥重置。

 

from pyDes import des, PAD_PKCS5
import base64

encry = des("0" * 8)
encry.setKey("123456789")
result = encry.encrypt("密文".encode(), padmode=PAD_PKCS5)
base = base64.b64encode(result).decode()

# 打印
'2xC7EUPxQY4='

 

 

 

搜索