rus*_*sau 4 command-line openssl
这个openssl
命令对我来说很好用。
openssl aes-128-ecb -d -in encrypted_base64.txt -K 4D1D75237C31E7732030C69F209F23154418373335E049C4F567C7B6D422ABD0 -base64
Run Code Online (Sandbox Code Playgroud)
我将如何使用密码文件进行等效操作?我正在尝试这个:
openssl aes-128-ecb -d -in encrypted_base64.txt -pass file:data_key_plaintext.bin -base64
Run Code Online (Sandbox Code Playgroud)
我得到了一个bad magic number
. data_key_plaintext.bin
包含-K
工作命令的字节。例如
> hexdump data_key_plaintext.bin
0000000 4d 1d 75 23 7c 31 e7 73 20 30 c6 9f 20 9f 23 15
0000010 44 18 37 33 35 e0 49 c4 f5 67 c7 b6 d4 22 ab d0
0000020
Run Code Online (Sandbox Code Playgroud)
file:pathname - 路径名的第一行是密码
这将如何应用于二进制密码短语?
由 指定的密码-pass
与由指定的实际加密密钥不同-K
。openssl 使用哈希函数处理密码短语,以导出具有特定位长的实际密钥。因此,密码短语通常是仅使用可打印字符的简短且令人难忘的字符串。
您可以通过-P
. 请注意,您的密钥将被截断为 128 位密钥长度aes-128-ecb
。另请注意,-ecb
模式较弱,不适合常用。
$ openssl aes-128-ecb -P -K 4D1D75237C31E7732030C69F209F23154418373335E049C4F567C7B6D422ABD0
salt=EA7B538100000000
key=4D1D75237C31E7732030C69F209F2315
$ openssl aes-256-cbc -P -pass pass:secret
salt=332A7608A01A609A
key=1B27C46F481CFA793C665EEFC3C5B6867735CD326840C598AA6EBCCA5829D066
iv =CE223BAEDAA625C02A397D3E1FCE8E75
Run Code Online (Sandbox Code Playgroud)
根据手册 -K
不支持文件输入。你可能想做这样的事情:
openssl aes-128-ecb -d -in encrypted_base64.txt -K $(hexdump -v -e '"%02X"' data_key_plaintext.bin) -base64
Run Code Online (Sandbox Code Playgroud)