我正在尝试在命令行中重新创建一些OpenSSL PHP代码。我已经能够获得以下PHP代码工作:
$key = 'aaaaaaaabbbbbbbbccccccccdddddddd';
$key = pack('H*',$key);
$data = 'b5057bbc04b842a96144a0f617f2820e';
$data = pack('H*',$data);
$result = openssl_decrypt($data,'des-ede', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING);
我正在处理(Ubuntu)
的命令 openssl des-ede -in encrypted-data.txt -out decrypted-data.txt -d -K aaaaaaaabbbbbbbbccccccccdddddddd -nopad
键
我解密的关键是十六进制值: aaaaaaaabbbbbbbbccccccccdddddddd
。可以通过十六进制吗?
加密数据
我在加密data.txt文件中传递的加密数据是十六进制值: b5057bbc04b842a96144a0f617f2820e
。数据应解密为Test123123
。我已经尝试将加密数据转换为二进制文件,并将其通过.bin文件传递而没有成功。通过之前,应该将此数据转换为其他格式吗?
参数
我相信我正在将PHP参数OPENSSL_RAW_DATA
和OPENSSL_ZERO_PADDING
转换为我的命令行调用问题。我已经发现了选项-nopad
,但是不确定它是否等同于PHP
我仅在这里包括这个问题,因为我无法格式化评论,因此应该关闭和删除此问题。这将验证该过程与命令行openssl
实用程序
pvg /tmp ➤ more e.php
<?php
$data = 'b5057bbc04b842a96144a0f617f2820e';
$data = pack('H*',$data);
echo $data;
pvg /tmp ➤ php e.php > in
pvg /tmp ➤ openssl des-ede -in in -out out -d -K aaaaaaaabbbbbbbbccccccccdddddddd -nopad
pvg /tmp ➤ cat out
Test123123%