Как зашифровать с Twofish, используя режим шифрования ECB и режим заполнения блоков PKCS7?

Я хочу получить доступ к API с помощью PHP. Технические характеристики:

  • Двоякий алгоритм
  • Режим шифрования ECB
  • Режим заполнения блока PKCS7

Я пробовал много разных функций и библиотек PHP, но ни одна из них не работает.

Вот мой код:

function encrypt($data, $key)
{
// Pad for PKCS7
$blockSize = mcrypt_get_block_size(MCRYPT_TWOFISH, MCRYPT_MODE_ECB);
$len = strlen($data);
$pad = $blockSize - ($len % $blockSize);
$data .= str_repeat(chr($pad), $pad);

$encryptedData = mcrypt_encrypt( MCRYPT_TWOFISH, $key, $data, MCRYPT_MODE_ECB);

return $encryptedData;
}

Вы видите проблему с этим кодом?

0

Решение

mcrypt_encrypt не поддерживает заполнение PKCS7. Это также устарело в течение значительного периода времени.

Если API, с которым вы хотите поговорить, использует режим Twofish и ECB, то вы, вероятно, вообще не хотите использовать этот API — если они счастливы использовать невероятно небезопасную схему шифрования для фронтального API, то остальные их кодовая база, вероятно, тоже довольно обманчива.

0

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

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

По вопросам рекламы [email protected]