javascript — расшифровка финишной рыбы в переполнении стека

я использую blowfish.js на моей стороне клиента.
Для шифрования на стороне клиента я использую

var encryptedData = blowfish.encrypt(
JSON.stringify(myData),  myEncryptionKey, {cipherMode: 0, outputType: 0}
);

Сюда encryptedData является строкой Blowfish в кодировке Base64. это Хорошо.

Для расшифровки на стороне клиента я использую

var decryptedData = blowfish.decrypt(
encryptedData , myEncryptionKey, {cipherMode: 0, outputType: 0}
);

Так decryptedData равно JSON.stringify(myData), это Хорошо.

Затем я отправляю encryptedData к сценарию .php, который содержит

$data = $_POST['data'];
$data = mcrypt_decrypt(MCRYPT_BLOWFISH, $myEncryptionKey, pack('H*',$data), MCRYPT_MODE_ECB);

И когда я пытаюсь напечатать $ data, я получаю что-то нечитаемое, например

�Nv��Xd�̿�:q6��A����,!v��c�O¡1�%>��ҭ� {0�� �    ���g�u�����t�z3q$����T��/Ҧ.j-�/!���;�lS���Z�X
��&����{j�m�����F�`7��.......and so on

Это не в порядке.
Кто-нибудь знает, что я делаю не так на стороне сервера?

2

Решение

Почему ты pack('H*',$data) как вы написали, данные base64 закодированная строка. Просто base64_decode данные и передать его в функцию расшифровки.

$data = $_POST['data'];
$decryptedData = base64_decode($data);

$data = mcrypt_decrypt(MCRYPT_BLOWFISH, $myEncryptionKey, $decryptedData, MCRYPT_MODE_ECB);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]