Я пытаюсь выполнить симметричное шифрование некоторых данных с помощью функции Zend_Filter_Encrypt. Проблема в том, что если я зашифровал некоторые данные, а затем расшифровал их, за дешифрованными данными стоят нуль-байты, и я понятия не имею, почему.
Например:
Открытый текст: тест Зашифровано: pk Расшифровано: тест
Кажется, что в конце расшифрованного текста добавляется ноль байтов, чтобы его длина была равна примерно 2 ^ n (строка с 11 символами дополняется до 16 => 2 ^ 4). Самым очевидным было бы просто раздеть этих персонажей, но я хочу знать, почему это происходит ...
Это код, который я использую, который отличается от того, как документация хочет, чтобы вы это делали, потому что их код просто не работает для меня (см .: http://framework.zend.com/manual/en/zend.filter.set.html)
define('VECTOR','EXfPCW23'); //example, not the actual used VECTOR / KEY
$key = 'lolwatlolwat';
public function encryptPassword($password, $key)
{
$filter = new Zend_Filter_Encrypt();
$filter->setEncryption(array('key' => $key));
$filter->setVector(VECTOR);
return $filter->filter($password);
}
public function decryptPassword($password, $key)
{
$filter = new Zend_Filter_Decrypt();
$filter->setEncryption(array('key' => $key));
$filter->setVector(VECTOR);
return $filter->filter($password);
}