在强行使用密文的同时,我发现了多个密钥,它们产生了相同的结果。
模式是带有欧洲央行和PKCS5填充的DES。
密文是TXcmk8KwIPxTHR45zAIGJPEFYj6dsgVOGseZnMcedCOhl/Qp5a8Qig==
使用键:{ !*}、{ +}、{ *}
尝试的键由方括号{}和包括的空白分隔。
密文将被解密为“DES是否有Enc/Dec的多个密钥?”用这些钥匙..。
在http://8gwifi.org/CipherFunctions.jsp和pyDES(https://pypi.python.org/pypi/pyDes/)上测试
发布于 2015-12-03 05:14:21
DES操作(加密和解密)忽略密钥的每个字节的lsbit。也就是说,如果在键内翻转任何一个lsbit,操作将保持不变。这就是您尝试过的键中发生的情况:空间的ASCII代码是0x20,而ASCII的代码是!是0x21;它们仅在lsbit上有所不同。因此,如果密钥有一个带有ASCII空间代码的字节,您可以用一个!替换它,它仍然能够解密。类似地,*的ASCII代码为0x2a,而用于+的ASCII代码为0x2b;也仅在lsbit中不同。
在最初的DES标准中,lsbit应该用作奇偶校验位(每个字节总是具有奇偶校验)。它应该是手动输入键的弱错误检查。现在,没有人进行这种奇偶校验,因此lsbit被忽略了。
https://crypto.stackexchange.com/questions/31004
复制相似问题