Тройная функция дешифрования не работает

Так что я работал над этой функцией, и я не уверен, что не так.

Я получаю зашифрованные данные и ключ:

$key = 'aaaaaaaabbbbbbbbccccccccdddddddd';
$data = 'b5057bbc04b842a96144a0f617f2820e';

Я пошел и преобразовал их в двоичный файл:

$key = pack('H*',$key);
$data = pack('H*',$data);

И запустил функцию расшифровки:

echo bin2hex(mcrypt_decrypt(Mcrypt_3des, $key, $data, MCRYPT_MODE_ECB));

Однако то, что я получаю, это: e2119b734b5050e3fa8717ee17f3a548

Но если я запускаю ту же самую расшифровку на http://tripledes.online-domain-tools.com/ или http://www.emvlab.org/descalc/?key=aaaaaaaabbbbbbbbccccccccdddddddd&iv=0000000000000000&input=b5057bbc04b842a96144a0f617f2820e&mode=ecb&action=Decrypt&output=54657374313233313233000000000000

Это на самом деле decrpyts к 54 65 73 74 31 32 33 31 32 33 00 00 00 00 00 00

что на самом деле Test123123

Есть предложения, в чем может быть проблема?

РЕДАКТИРОВАТЬ:

Я пытался перейти на openssl_decrypt

Однако я продолжаю получать ложное возвращение.

Код:

$result = openssl_decrypt($data,'des-ede3', $key);
result = bool(false)

1 ответ

Решение

Я смог заставить его работать, используя функцию расшифровки открытых SSL:

$key = 'aaaaaaaabbbbbbbbccccccccdddddddd';
$key = pack('H*',$key);

// DATA
$data = 'b5057bbc04b842a96144a0f617f2820e';
$data = pack('H'.strlen($key),$data);

// DECRYPT OPEN SSL
$result = openssl_decrypt($data,'des-ede', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING);
Другие вопросы по тегам