不能对少于1376个字符的字符串进行三重des加密

时间:2019-06-18 08:14:39

标签: php phpseclib 3des tripledes

当我在php(phpseclib)上工作时,我对3DES算法有疑问。 如果我的字符串长度在phpseclib上最短1376或1300 Triple DES,则Triple DES不起作用并且无法加密我的字符串!!!

该算法可以使用多少个长度的字符串?

使用phpseclib软件包进行加密。

代码:

$key = '';
$cipher = new \phpseclib\Crypt\TripleDES(\phpseclib\Crypt\DES::MODE_CBC);

//my key is hex format
$cipher->setKey(hex2bin($key));
$cipher->setIV(hex2bin('0000000000000000'));

//my data is hex format

$plaintext = hex2bin($data);

echo $cipher->encrypt($plaintext);

接你。

1 个答案:

答案 0 :(得分:-1)

我可以解决这个问题。

在php中,您必须将字符串填充为16个字符!!!

例如:

str_pad($input, 16, "your padded char", STR_PAD_LEFT); // or STR_PAD_RIGHT for padded from right