Я должен передать значение и зашифровать его для следующей спецификации:
"256-битная длина ключа, 256-битная длина блока, 32-байтовые блоки, режим ECB, с кодировкой ASCII (зашифрованнаяожидается, что данные будут представлены в виде строки, в которой каждый символ будет преобразован в 2-байтовое шестнадцатеричное значение) "
Однако я должен что-то упустить.Это для целей проверки с веб-сервисом, но я продолжаю получать отказ из-за ошибки расшифровки.
Вот что у меня есть:
$key = '1324mykey';
$string = 'Ron Swanson';
// 1. Encrypt the string with the key using Rijndael 256 in ECB mode
$td = mcrypt_module_open('rijndael-256', '','ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$encrypted_string = mcrypt_generic($td, $string);
// 2. Base64 encode my string
$encrypted_string = base64_encode($encrypted_string);
// 3. Convert each character of encrypted_string to it's 2-byte HEX value
$hex='';
for ($i=0; $i < strlen($encrypted_string); $i++)
{
$hex .= dechex(ord($encrypted_string[$i]));
}
// Now $encrypted_string should match up with the recipe, but it isn't.
$encrypted_string = $hex;
Я надеюсь, что в требованиях к шифрованию есть что-то базовоечто мне не хватает в моем шаге 1 моего процесса.