使用密钥文件作为 OpenSSL 的密码

Jav*_*eef 5 command-line linux-mint openssl

我得到了解密使用 aes 加密的二进制文件的任务。我有一个 32 字节的二进制文件,它是解密的密钥。如果密钥是密码,我知道如何使用

openssl enc -d -aes-256-cbc -in file.out
Run Code Online (Sandbox Code Playgroud)

在这种情况下,密钥是一个二进制文件。我如何使用它?

use*_*ser 9

添加-pass file:nameofkeyfile到 OpenSSL 命令行。这会导致 OpenSSL 从指定文件中读取密码/密码短语,但其他方式正常进行。

有关更多详细信息,请参阅 openssl(1) ( man 1 openssl)的手册页,尤其是其“PASS PHRASE ARGUMENTS”部分,以及 enc(1) ( man 1 enc)的手册页。

如果密钥文件实际上持有加密密钥(不是从中派生加密密钥的东西),那么您想要使用它-K。为此,您需要类似的东西:

-K $(hexdump -v -e '/1 "%02X"' < nameofkeyfile)
Run Code Online (Sandbox Code Playgroud)

在 OpenSSL 命令行而不是-pass. hexdump用于将密钥文件转换为 OpenSSL 想要的纯十六进制表示。