Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Crypto Js在更改要加密的数据时从mcrypt进行不同的输出_Javascript_Php_Encryption - Fatal编程技术网

Javascript Crypto Js在更改要加密的数据时从mcrypt进行不同的输出

Javascript Crypto Js在更改要加密的数据时从mcrypt进行不同的输出,javascript,php,encryption,Javascript,Php,Encryption,我的问题现在与这个问题有联系,这就是为什么我使用了相同的问题,但添加了一些额外的行来更好地解释它 基于我之前的问题,Jimmany爵士已经解决了,谢谢你的提示。它工作部分正确,因为它确实显示相同的结果,但只有当我使用“Blader”这个词时,如果我使用另一个词,如“CROW”,那么两个脚本之间的输出是不同的 这是吉姆爵士给出的密码,就像我在这里使用的符咒一样 示例是当我使用CROW作为要加密的数据时 cryptoJS中的输出 以mcrypt为单位的输出 为了解决这个问题,我删除了CryptoJS

我的问题现在与这个问题有联系,这就是为什么我使用了相同的问题,但添加了一些额外的行来更好地解释它

基于我之前的问题,Jimmany爵士已经解决了,谢谢你的提示。它工作部分正确,因为它确实显示相同的结果,但只有当我使用“Blader”这个词时,如果我使用另一个词,如“CROW”,那么两个脚本之间的输出是不同的

这是吉姆爵士给出的密码,就像我在这里使用的符咒一样

示例是当我使用CROW作为要加密的数据时

cryptoJS中的输出

以mcrypt为单位的输出

为了解决这个问题,我删除了CryptoJS中的padding:CryptoJS.pad.Pkcs7,但我的问题是,如果我不想删除CryptoJS中的padding怎么办

所有答案都将不胜感激。

您需要了解其工作原理。它将明文增加到16字节的倍数。如果已经是16的倍数,则会额外添加16个字节

对于UTF-8中的CROW 4个字节,您将再添加12个字节。每个字节现在是12,也就是12字节/12,而不是Blader的10字节/10。例如,尝试以下方法:

$encrypted = "CROW\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c";
要使用PKCS7进行填充,您可以尝试以下操作:

$encrypted = "CROW";

// Add PKCS#7 padding
$pad = 16 - (strlen($encrypted) % 16);
$encrypted = $encrypted . str_repeat(chr($pad), $pad);

我会将变量命名为$encrypted以外的其他名称,因为它实际上从未保存加密数据。

希望我能感谢您100多次。我的两个问题在不到一个小时内得到了你的回答。希望有一天我能像你一样,先生。非常感谢你的帮助,先生。如果没有您的帮助,就不可能真正做到。@user3771496当您知道在哪里查找时,这很容易。此外,在问题中包含实际的数据值和代码确实有帮助。干杯
x9/oeyLZkLkXM7B1Zo+ezg==
$encrypted = "CROW\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c";
$encrypted = "CROW";

// Add PKCS#7 padding
$pad = 16 - (strlen($encrypted) % 16);
$encrypted = $encrypted . str_repeat(chr($pad), $pad);