Ваши функции отлично работают для меня, используя следующий код:
$key = pack('H*','aaaaaaaaaaaaa');
$method = 'aes-256-ecb';
$encrypted = encrypt('test string', $key, $method);
$decrypted = decrypt($encrypted, $key.'a', $method);
echo $decrypted; // Output: 'test string'
Поскольку вы получаете пустую строку для расшифровки, это означает, что вы получили неверный ключ или зашифрованный текст, когдадешифрования.Убедитесь, что ключ, который вы используете для дешифрования, в точности совпадает с ключом, который вы используете для шифрования, включая любые манипуляции с ним, такие как pack()
функция, которую вы здесь сделали.Разница даже в один байт, и вы не сможете расшифровать.
Также убедитесь, что ни ключ, ни зашифрованный текст не усекаются при сохранении.Если при использовании базы данных тип столбца слишком мал для того, что вы пытаетесь сохранить, значения будут усечены.