当我在终端中执行以下操作时,与显示这些键映射到唯一密码的消息相比,我获得了不同的解密文本
openssl enc -des-ecb -in text.in -out cipher.txt -k '96508092'
openssl enc -d -des-ecb -in cipher.txt -out text.in -k '82514145'
但是当我使用<openssl/des.h>
,Crypto.cipher,pyDes在编程中实现它时,我得到了相同的解密文本。我找到了为什么我得到相同的文本,这是因为这些8字节键映射到唯一的7字节键0x3832343134313401。请参阅我之前的问题Why can I encrypt data with one DES key and successfully decrypt with another?
我的问题是:与提到的库相比,如何在OpenSSL终端命令上实现它们可以将这些8字节密钥映射到唯一密码?
答案 0 :(得分:0)
如果要提供关键字节,则需要使用大写-K
。否则,OpenSSL会假定其密码并从中获取(不同的)密钥。
您还需要使用键的十六进制版本:
openssl enc -des-ecb -in text.in -out cipher.txt -K '3832353134313435'
openssl enc -d -des-ecb -in cipher.txt -out text.out -K '3933353035303434'