我一直在为C ++寻找加密库,最后遇到了Crypto++。在我尝试使用3DES之前,该库似乎没问题。问题是在这个库中实现的DES算法的密钥长度是64位(而不是通常的56位)。我花了一些时间寻找解释,我最后得到的是Crypto ++文档中的几个字:
Crypto ++中的DES实现忽略了密钥中的奇偶校验位(每个字节的最低有效位)。
这是否意味着如果我有一个通常的56位密钥并希望用这个库解密一些数据,我必须"展开"我的密钥是在每7位密钥数据后插入一个无意义的额外位?或者是否有另一种方法可以将56位密钥用于这个精彩的库?
答案 0 :(得分:1)
通常的DES密钥是8字节,只是在几乎所有当前的实现DES中都忽略了lsb(最低有效位),即奇偶校验位。
但这引出了一个问题,那就是应该使用DES和/或3DES(使用112位和/或168位密钥)。 DES的答案:不,对于3DES:仅用于传统兼容性。这两个都已被AES取代。