Crypto++ DES 实现和密钥长度

Crypto++ DES implementation and the key length

我一直在寻找 C++ 的加密库,终于找到了 Crypto++. The library seemed OK until I tried to use 3DES。问题是这个库中实现的 DES 算法的密钥长度是 64 位(而不是通常的 56 位)。我花了一些时间寻找解释,最后得到的只是 Crypto++ 文档中的几句话:

The DES implementation in Crypto++ ignores the parity bits (the least significant bits of each byte) in the key.

这是否意味着如果我有一个普通的 56 位密钥并且想用这个库解密一些数据我必须 "expand" 我的密钥通过在我的密钥的每 7 位之后插入一个无意义的额外位数据?或者还有其他方法可以将 56 位密钥与这个出色的库一起使用吗?

通常的 DES 密钥是 8 字节,只是在几乎所有当前的 DES 实现中都忽略了 lsb(最低有效位),即奇偶校验位。

但这引出了是否应该使用 DES and/or 3DES(具有 112 位 and/or 168 位密钥)的问题。 DES 的答案:否,3DES 的答案:仅用于遗留兼容性。这两个都已被 AES 取代。