Encryption 密码RC4的openssl命令行,非预期结果,don';我不明白

Encryption 密码RC4的openssl命令行,非预期结果,don';我不明白,encryption,openssl,rc4-cipher,Encryption,Openssl,Rc4 Cipher,这可能是个愚蠢的问题,但我想不出来。 目前,我正在使用这个网站:密码rc4的概念证明。例如,我以明文形式输入'a',以密码形式输入'a',以密文形式输入'71'(这是'q'的ascii表示)。 我想使用openssl从命令行执行同样的操作: > echo a | openssl rc4 -nosalt -out /tmp/uuu enter rc4 encryption password: Verifying - enter rc4 encryption password: >

这可能是个愚蠢的问题,但我想不出来。 目前,我正在使用这个网站:密码rc4的概念证明。例如,我以明文形式输入'a',以密码形式输入'a',以密文形式输入'71'(这是'q'的ascii表示)。 我想使用openssl从命令行执行同样的操作:

> echo a | openssl rc4 -nosalt  -out /tmp/uuu 
enter rc4 encryption password:
Verifying - enter rc4 encryption password:

> cat /tmp/uuu | xxd
0000000: 5896                                     X.
所以我们得到的是'5896'而不是'71',这是我不理解的。如果有人能向我解释,我将不胜感激

谢谢大家!

正在进行的工作 这里有一个有趣的模式。使用“0”作为加密密钥,我们可以得到明文和密文之间的一些强趋势。见下文

关于这两种实现之间的差异,我感兴趣的是fyne的增长是单调的,而OpenSSL有点像阶梯。我稍后再看一看-我把这个标记为社区wiki,因为我不认为这是一个答案,但我觉得分析可能会有帮助。 fyne:

OpenSSL:

0(0) = 72
0(1) = 73
0(2) = 70
0(3) = 71
0(4) = 76
0(5) = 77
0(6) = 74
0(7) = 75
0(8) = 7A
0(9) = 7B
使用的命令
多亏了一个朋友,我们才知道出了什么问题。他让我打印钥匙

echo -ne "a" |  openssl  rc4 -pass pass:a -e  -nopad    -nosalt -p
key=0CC175B9C0F1B6A831C399E269772661
我们看到添加了一些填充,最后输入了0x61。结果是openssl从pass生成了一个密钥

相反,如果我们使用-K选项直接输入密钥:

echo -ne "a" |  openssl  rc4 -K 61 -e  -nopad    -nosalt -p
key=61000000000000000000000000000000
我们看到有一个带有“0”的填充。实际上,它不希望我们使用太小的密钥(因为对于rc4,密钥必须至少有40位长)。现在,让我们尝试使用128b键:

echo -ne "foobar" |  openssl  rc4 -K "6162636465666768696A6B6C6D6E6F70" -e  -nopad    -nosalt  | xxd
0000000: caaf 2cbf d334                           ..,..4

结果与网页上的结果相同:)

echo
默认情况下会追加一个换行符,因此要加密的字符串实际上是“a\n”。尝试改用
echo-n
,这将省略尾随的换行符。不幸的是,通过联机工具运行“a\n”会产生71B6。也许问题在于对密钥进行编码。@daxelrod:事实上,由于它是一种流密码,在明文中添加尾随字符不会改变第一个加密字节的值。您也可以在命令行中传递密钥,使用-pass-pass:a值,它不会更改结果。您好,我们可以使用密码而不是K来获得与网页中相同的结果吗?
echo -ne "a" |  openssl  rc4 -K 61 -e  -nopad    -nosalt -p
key=61000000000000000000000000000000
echo -ne "foobar" |  openssl  rc4 -K "6162636465666768696A6B6C6D6E6F70" -e  -nopad    -nosalt  | xxd
0000000: caaf 2cbf d334                           ..,..4