Размер ключа AES mcrypt_encrypt

256 bit  = 256/8 = 32
192 bit = 192/8 = 24
128 bit = 128/8 = 16

<?PHP
include("AES.php"); // http://aesencryption.net/
$string = "myawesometext to encrypt!";
$key = "1234567890123456789012345";
$block = 256;
$aes = new AES($string, $key, $block);
$enc = $aes->encrypt();
$aes->setData($enc);
$dec= $aes->decrypt();
echo "After encryption: ".$enc."<br/>";
echo "After decryption: ".$dec."<br/>";
?>

Ошибка: mcrypt_decrypt (): ключ размера 25 не поддерживается этим алгоритмом. Поддерживаются только ключи размером 16, 24 или 32

Когда я использую этот сайт: http://aesencryption.net/
шифрование и дешифрование работает отлично.
PHP: 5.6.3

изменение размера ключа на самом деле не вариант, видя, как это должно работать.

Почему я использую AES?
Я общаюсь между двумя серверами (один из которых является третьей стороной), и информация, передаваемая при обмене данными, может быть утечкой безопасности, если она не зашифрована. в противном случае я бы использовал хеширование. Эти данные потребности быть восстановленным третьей стороной с ключом.

ВАЖНЫЙ:

  • Текущая версия PHP: 5.6.3 // не работает
  • Последняя версия PHP: 5.5.15 // работает

—————-РЕШИТЬ

версия: 5.6.0
» Неверный ключ и iv размеры больше не принимаются. mcrypt_encrypt () теперь выдаст предупреждение и вернет FALSE, если входные данные неверны. Ранее ключи и IV дополнялись байтами ‘\ 0’ до следующего допустимого размера. «- http://php.net/manual/en/function.mcrypt-encrypt.php

0

Решение

используйте openssl_random_pseudo_bytes для генерации вашего ключа. openssl_random_pseudo_bytes будет генерировать байты, поэтому вам потребуется bin2hex, чтобы получить буквенно-цифровой ключ. bin2hex преобразует сгенерированные вами байты в закодированный ASCII гекс.

//To generate a 16 bytes key use this:
$key = bin2hex(openssl_random_pseudo_bytes(8));
//24 bytes
$key = bin2hex(openssl_random_pseudo_bytes(12));
//32 bytes
$key = bin2hex(openssl_random_pseudo_bytes(16));
//To view the byte size:
echo "key byte size: ".strlen($key)."<br/>";
0

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

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

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