encryption - 如何在命令行中使用 openSSL 加密十六进制文件或明文的十六进制表示?

标签 encryption openssl openssh php-openssl

我在命令行中使用 OpenSSL 使用 aes 加密来加密明文。

以下命令用于加密明文并生成密文。

openssl enc  -aes-128-ecb -in plaintext_in_char.txt -out plaintext_in_char.txt.enc  -K 5468617473206D79204B756E67204675

在上面的命令中,明文以字符格式给出, key 以十六进制格式给出。

cat plaintext_in_char.txt
Two One Nine Two

通过openSSL将plaintext_in_char.txt转换为以下十六进制

54776f204f6e65204e696e652054776f

在执行 aes 操作之前,该十六进制值与轮 key 0 进行异或运算。

以下文件包含上述明文的十六进制表示

cat plaintext_hex_1.txt
54776f204f6e65204e696e652054776f

cat plaintext_hex_2.txt
0x54776f204f6e65204e696e652054776f


cat plaintext_hex_3.hex
54776f204f6e65204e696e652054776f

cat plaintext_hex_4.hex
0x54776f204f6e65204e696e652054776f

我想传递明文的十六进制表示形式作为加密的输入。但是,当我尝试以下命令时,它不会将输入视为 十六进制输入,它将它们作为单个字符并在执行初始回合操作之前再次转换为十六进制值。

openssl enc  -aes-128-ecb -in plaintext_hex_1.txt -out plaintext_hex.txt.enc  -K 5468617473206D79204B756E67204675
openssl enc  -aes-128-ecb -in plaintext_hex_2.txt -out plaintext_hex.txt.enc  -K 5468617473206D79204B756E67204675
openssl enc  -aes-128-ecb -in plaintext_hex_3.hex -out plaintext_hex.txt.enc  -K 5468617473206D79204B756E67204675
openssl enc  -aes-128-ecb -in plaintext_hex_2.hex -out plaintext_hex.txt.enc  -K 5468617473206D79204B756E67204675

如果有人可以帮助我加密输入数据的明文的十六进制表示,以使用 openSSL 进行加密,而无需进一步转换为十六进制值(意味着防止输入的十六进制表示的十六进制),这将是非常有帮助的。

是否需要任何其他格式来存储明文的十六进制表示形式 将其加密为其十六进制格式,而无需再次进一步转换十六进制格式?

我使用的是 Linux 操作系统。

最佳答案

OpenSSL 仅接受二进制(或 base64,可选)输入。但是,如果您想以十六进制存储输入,则可以将其转换为二进制,然后再将其通过单行管道传输到 openssl,例如:

cat plain_hex.txt | perl -e 'print pack "H*", <STDIN>' | openssl enc -aes-128-ecb -out plain_hex.txt.enc -K 5468617473206D79204B756E67204675

关于encryption - 如何在命令行中使用 openSSL 加密十六进制文件或明文的十六进制表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50669762/

相关文章:

python imaplib gpg 文件内容转换为消息

javascript - 避免在 TLS 客户端 Hello 中发送 TLS_EMPTY_RENEGOTIATION_INFO_SCSV 密码

ssh - 适用于所有用户的SSH强制命令

生成自签名证书字符串太长时 OpenSSL 配置错误

ssl - 如何在网站之间共享自签名 TLS 证书

sockets - 使用原始套接字获取SSH Banner

ssl - 在 openssh 中是否可以明智地编辑 ssh/ssh_config 或 sshd_config 文件密码?

security - Grails:加密查询参数,使用散列加密/解密 url 和隐藏字段中的参数

java - 检测 Java 中的终端命令错误

c - 我应该如何用指针算术来解决这个密码?