与javascript中的CryptoJS和PHP中的Mcrypt不同的结果
第一个代码是jscript cryptoJS,它实际上加密了我提供的数据。我在php中的mcrypt中也做了同样的操作,还提供了常量IV键和一些键。结果表明,有些结果是不同的。IV键在调用时与keybase64键不同。看一看 这里是JSCRIPTcryptoJS与javascript中的CryptoJS和PHP中的Mcrypt不同的结果,javascript,php,Javascript,Php,第一个代码是jscript cryptoJS,它实际上加密了我提供的数据。我在php中的mcrypt中也做了同样的操作,还提供了常量IV键和一些键。结果表明,有些结果是不同的。IV键在调用时与keybase64键不同。看一看 这里是JSCRIPTcryptoJS function crypto_encrypt(text) { //This is for J
function crypto_encrypt(text) { //This is for JS
var keyBase64 = CryptoJS.enc.Base64.parse("ITU2NjNhI0tOc2FmZExOTQ==");
var iv = CryptoJS.enc.Base64.parse('AAAAAAAAAAAAAAAAAAAAAA==');
var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(text), keyBase64,
{
keySize: 128 / 8,
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
// Returns a Base64 encoded string.
return encrypted;
}
然后我用这个来称呼它
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type='text/javascript' src='./jquery.soap.js'></script>
<!--<script type='text/javascript' src='./soapclient.js'></script>-->
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/components/enc-base64-min.js"></script>
<script type='text/javascript' src='./HCSConnect.js'></script>
</head>
<body>
<script language="JavaScript" type="text/javascript">
var encryptedname = crypto_encrypt('Patrick');
alert(encryptedname);
</script>
</body>
</html>
答案是xjhimm0zms6rosthdanbuwyb1ihnve1
我哪里出错了。你没有对你的钥匙和iv进行解码:
function fnEncrypt($sValue, $sSecretKey)
{
return rtrim(
base64_encode(
mcrypt_encrypt(
MCRYPT_RIJNDAEL_192,
base64_decode("ITU2NjNhI0tOc2FmZExOTQ=="),$sValue, // added base64_decode
MCRYPT_MODE_CBC,
$iv = base64_decode('AAAAAAAAAAAAAAAAAAAAAA==') // added base64_decode
)
), "\0"
);
}
与其他函数相同
function fnEncrypt($sValue, $sSecretKey)
{
return rtrim(
base64_encode(
mcrypt_encrypt(
MCRYPT_RIJNDAEL_192,
base64_decode("ITU2NjNhI0tOc2FmZExOTQ=="),$sValue, // added base64_decode
MCRYPT_MODE_CBC,
$iv = base64_decode('AAAAAAAAAAAAAAAAAAAAAA==') // added base64_decode
)
), "\0"
);
}