我刚刚第一次安装 Linux(Ubuntu),并下载了 OpenSSL 软件包。也打开了命令行并尝试了一些命令,但都不起作用。
所以我有初始向量:5a04ec902686fb05a6b7a338b6e07760
,还有密文:14c4e6965fc2ed2cd358754494aceffa
和相应的明文:We're blown. Run
现在我想象一定有一个命令,你输入初始向量和明文,结果你应该得到密文......?另一种可能性:输入初始向量和密文,获取明文。
但是如何在命令行中执行此操作?我已经尝试过以下命令:
openssl aes-256-cbc -e -nosalt -a -in input.txt -out output.txt -k key -iv ivkey
about input.txt
:我在桌面上创建了这个文件,并在其中写入了纯文本。关于output.txt
,我也创建了它并将其放在桌面上,它是空的。使用此命令后,什么也没发生!
还有其他命令可以帮助我吗?我也尝试在互联网上寻找一些有用的工具,但似乎没有任何效果! : /
答案1
准备输入文本:
echo "We're blown. Run" >input.txt
加密:
openssl enc -aes-256-cbc -nosalt -e \
-in input.txt -out input.txt.enc \
-K '2222233333232323' -iv '5a04ec902686fb05a6b7a338b6e07760'
解密到stdout原文:
openssl enc -aes-256-cbc -nosalt -d \
-in input.txt.enc \
-K '2222233333232323' -iv '5a04ec902686fb05a6b7a338b6e07760'
注 1:-K
你-iv
必须通过仅由十六进制数字组成的字符串。你可以从二进制文件中获取此字符串,如下所示:
hexdump -e '16/1 "%02x"' FILE_WITH_KEY
笔记2:这里我用的是AES-256算法得到 256 位长度的密钥。但-K
只有8 字节/16 进制/64 位。在这种情况下,openssl
私钥用零填充,因此在上面的例子中使用了以下密钥:'2222233333232323000000000000000000000000000000000000000000000000'
。这是一个显着的弱化,请在现实生活中使用更多强密钥。同样的故事参考-iv
,但它的长度取决于所选算法的模式和块长度,查看相关问题。