如何将96位密钥转换为64位密钥?我有一个 96位长的DES密钥(即745347651281)。我想将其转换为64位,我将用它来解密DES密文。
更新
注意:“原始密钥”是十六进制格式,在进行RSA解密之前我转换为整数(基数为16)。
答案 0 :(得分:1)
您显示的密钥大小为48位,而不是96位大小 - 如果它被认为是指定的十六进制。没有奇偶校验的DES密钥的大小为56位。这意味着您必须创建缺少的奇偶校验位。 DES的平价描述如下:
KEY的每个8位字节中的一位可用于密钥生成,分发和存储中的错误检测。第8,16,......,64位用于确保每个字节都是奇校验。
请注意,这些位从左侧开始编号为1,这意味着每个字节的最小有效位用于奇偶校验。因此,您必须分配您在字节上给出的位,然后通过可能翻转最低有效位(使用XOR为1)来调整每个字节的奇偶校验。
通常,图书馆都支持这种操作。在Java中,您可以通过使用SecretKeyFactory
生成DES密钥来实现此目的。