Я хочу получить доступ к API с помощью PHP. Технические характеристики:
Я пробовал много разных функций и библиотек 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;
}
Вы видите проблему с этим кодом?
mcrypt_encrypt
не поддерживает заполнение PKCS7. Это также устарело в течение значительного периода времени.
Если API, с которым вы хотите поговорить, использует режим Twofish и ECB, то вы, вероятно, вообще не хотите использовать этот API — если они счастливы использовать невероятно небезопасную схему шифрования для фронтального API, то остальные их кодовая база, вероятно, тоже довольно обманчива.
Других решений пока нет …