私は、CBC 暗号モード暗号化で 128 ビットの AES ALgo を使用しています。以下はコードです。
$cc = 'my secret text';
$key = '3aa22e01c04c7059778c54d122b0273689fba00f4a166a66d15f7ba6a8ba8743';
$iv = '1234567890123456';
$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、最大: 10 行目の /var/www/cipher.php の 32 警告: mcrypt_generic_init(): キーのサイズが大きすぎます。指定された長さ: 64、最大: 14 行目の /var/www/cipher.php の 32 暗号化: vM/XVYSjs/QApdCUEQ8bdQ== 復号化: 私の秘密のテキスト
サイズの問題に直面している理由と、キーを変更せずにサイズの問題を根絶する方法について、誰かが私を導くことができます...