Я хочу перенести мою систему из pear/Crypt/Blowfish
в phpseclib/Crypt/Blowfish
Lib.
Мне нужно иметь полную обратную совместимость. Итак, каковы различия между этими двумя библиотеками?
я нашел по этой ссылке что «PEAR Crypt_Blowfish использует ECB по умолчанию, а phpseclib использует CBC».
Поэтому я настроил phpseclib для работы с ECB, но все же разница между двумя библиотеками. Который из ?
Наконец я нашел решение:
По умолчанию используется пакет Pearl Crypt chr(0)
для заполнения строк, длина которых не кратна 8 (размер блока). Но вместо этого phpseclib использует целые числа.
Вот решение:
$crypt = new Crypt_Blowfish(CRYPT_MODE_ECB);
$crypt->setKey('mysecretkey');
$crypt->disablePadding();
// You must padding your input here with chr(0),
// to put your input length to a multiple of 8
$block_size = 8;
$pad = $block_size - (strlen($text) % $block_size);
$text = str_pad($text, strlen($text) + $pad, chr(0));
$encrypted = $crypt->encrypt($text);
Других решений пока нет …