Я использую AES Algo 128 бит с CBC режиме шифра шифрования, ниже код:PHP AES 128 бит CBC шифрование дает предупреждение о размере
$cc = 'my secret text';
$key = '3aa22e01c04c7059778c54d122b0273689fba00f4a166a66d15f7ba6a8ba8743';
$iv = '123456789';
$length = strlen($cc);
$cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128,'','cbc','');
mcrypt_generic_init($cipher, $key, $iv);
$encrypted = base64_encode(mcrypt_generic($cipher,$cc));
mcrypt_generic_deinit($cipher);
mcrypt_generic_init($cipher, $key, $iv);
$decrypted = mdecrypt_generic($cipher,base64_decode($encrypted));
mcrypt_generic_deinit($cipher);
echo "encrypted: " . $encrypted;
echo "\n";
echo "decrypted: " . substr($decrypted, 0, $length) . "\n";
Но это дает мне предупреждение с выходом, как:
Предупреждение: mcrypt_generic_init(): размер ключа слишком велик; длина: 64, не более: 32 в /var/www/cipher.php в строке 10 Предупреждение: mcrypt_generic_init(): размер ключа слишком велик; Прилагаемые длина: 64, макс: 32 в /var/www/cipher.php по линии 14 зашифрованы: Vm/XVYSjs/QApdCUEQ8bdQ == расшифрован: мой секретный текст
Теперь кто-то может вести меня, почему я сталкиваются с проблемой размера и как я могу искоренить проблему размера без изменения ключа ...
Не могли бы вы указать, используя первые 16 байт значения ключа помогло? –