OpenSSL [des-ede3-cbc] 解密 php
OpenSSL [des-ede3-cbc] Decryption php
我不得不接收一些使用 3DES 和共享密钥加密的数据。
我正在使用 php7 和 openssl_decrypt 函数,但我无法重新创建发送给我的文档示例的结果。
创建发送给我的数据的 OpenSSL 命令如下:
openssl enc -des-ede3-cbc -base64 -K 17839778773fadde0066e4578710928988398877bb123789 -iv 00000000 -in D:/in.txt
Example:
string_encoded: 123456
data_to_decrypt: Ja79hWTRfBE=
我尝试用在线工具解码"Ja79hWTRfBE=",成功得到“123456”。
(我使用了这个工具:http://tripledes.online-domain-tools.com/ 输入文本(十六进制)“25aefd8564d17c11”,函数:3DES,模式:CBC,密钥(十六进制)17839778773fadde0066e4578710928988398877bb123789,iv:00000000)
在我的 php 代码下方:
$key = "17839778773fadde0066e4578710928988398877bb123789";
$decData = openssl_decrypt(base64_decode('Ja79hWTRfBE='), 'DES-EDE3-CBC', $key, 0, "00000000");
var_dump($decData);
var_dump return me bool(false).
我做错了什么?
我可以使用以下代码重现您的目标:
<?php
$data = "123456";
$method = "DES-EDE3";
$key = "17839778773fadde0066e4578710928988398877bb123789";
$options = 0;
// transform the key from hex to string
$key = pack("H*", $key);
// encrypt
$enc = openssl_encrypt($data, $method, $key, $options);
// decrypt
$dec = openssl_decrypt($enc, $method, $key, $options);
echo "plain: ".$data." encrypted: ".$enc." decrypted: ".$dec;
- 不使用 base64 设置数据
- 使用 DES-EDE3 方法
- 转换您的密钥(从十六进制到字符串)
我不得不接收一些使用 3DES 和共享密钥加密的数据。 我正在使用 php7 和 openssl_decrypt 函数,但我无法重新创建发送给我的文档示例的结果。
创建发送给我的数据的 OpenSSL 命令如下:
openssl enc -des-ede3-cbc -base64 -K 17839778773fadde0066e4578710928988398877bb123789 -iv 00000000 -in D:/in.txt
Example:
string_encoded: 123456
data_to_decrypt: Ja79hWTRfBE=
我尝试用在线工具解码"Ja79hWTRfBE=",成功得到“123456”。 (我使用了这个工具:http://tripledes.online-domain-tools.com/ 输入文本(十六进制)“25aefd8564d17c11”,函数:3DES,模式:CBC,密钥(十六进制)17839778773fadde0066e4578710928988398877bb123789,iv:00000000)
在我的 php 代码下方:
$key = "17839778773fadde0066e4578710928988398877bb123789";
$decData = openssl_decrypt(base64_decode('Ja79hWTRfBE='), 'DES-EDE3-CBC', $key, 0, "00000000");
var_dump($decData);
var_dump return me bool(false).
我做错了什么?
我可以使用以下代码重现您的目标:
<?php
$data = "123456";
$method = "DES-EDE3";
$key = "17839778773fadde0066e4578710928988398877bb123789";
$options = 0;
// transform the key from hex to string
$key = pack("H*", $key);
// encrypt
$enc = openssl_encrypt($data, $method, $key, $options);
// decrypt
$dec = openssl_decrypt($enc, $method, $key, $options);
echo "plain: ".$data." encrypted: ".$enc." decrypted: ".$dec;
- 不使用 base64 设置数据
- 使用 DES-EDE3 方法
- 转换您的密钥(从十六进制到字符串)