phpseclib — неправильное шифрование симметричного ключа Blowfish с PHP 5.2.9 на 32-битной ОС Linux

Я пытаюсь зашифровать строку с использованием симметричного ключа (blowfish) с помощью PHP 5.2.9 (на 32-разрядной ОС Linux) и с помощью phpseclib 1.0.3 (работает во внутреннем режиме), пример кода, который я использую, это довольно просто:

include('Crypt/Blowfish.php');

$cipher = new Crypt_Blowfish();
$data = 'abcdefghijk';

$cipher->setKey('abcdef0123456789abcdefghi9876543');

echo bin2hex($cipher->encrypt($data));

сгенерированный вывод (PHP 5.2.9 — 32-битная ОС Linux):

0e1651fc54dd530757fc1711b696dac5

Но я пробовал тот же код с другими серверами (PHP 7.07, PHP 5.3.3, PHP 5.0.4), и ВСЕ они генерируют это (все они являются 64-битной ОС Linux):

ad7145c675b1c914bbfe379dc7293bf3

Я полагаю, что вывод PHP 5.2.9 неверен. Что может быть причиной этого? Есть какие-нибудь подсказки?

3

Решение

Это была проблема, связанная с преобразованиями типа float в int в 32-битной Linux pre-PHP 5.3. Разработчики phpseclib исправили проблему в версии 1.0.4 & 2.0.4

2

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector