如何使用ECB密码模式和PKCS7块填充模式使用Twofish进行加密?

时间:2018-09-17 22:37:30

标签: php encryption pkcs#7 ecb twofish

我想使用PHP访问API。规格为:

  • Twofish算法
  • 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;
}

您看到此代码有问题吗?

1 个答案:

答案 0 :(得分:0)

mcrypt_encrypt不支持PKCS7填充。也已淘汰了很长一段时间。

如果您要与之交谈的API使用的是Twofish和ECB模式,那么您可能根本不想使用该API-如果他们很乐意为前端API共同制定一个极其不安全的加密方案那么他们的其余代码库也可能非常笨拙。