问题描述
我正在尝试使用 Python Crypto.Chiper 包加密字符串变量以了解 DES 算法。但我真的不明白为什么密钥长度必须是 8 个字节。我到处搜索,看到 DES 算法密钥长度是 56 位。为什么它们不同?
解决方法
如描述,例如on wikipedia,密钥由 56bit + 8 个奇偶校验位组成。由于这些通常不用于加密过程本身,因此通常不会提及它们(例如,参见 here 了解详细信息)。事实上,Crypto.Cipher
中的 DES 实现明确指出 parity-bits are discarded。所以基本上它是过去加密时代的遗物,也是图书馆创建者的设计决定。