我的浏览器(Chrome)出现以下错误:
Uncaught TypeError: Object [object global] has no method 'mixIn' aes.js:28
d.CipherParams.l.extend.init aes.js:28
c.hasOwnProperty.c.init sha1.js:7
e jQuery.js:7
Wc jQuery.js:7
Wc jQuery.js:7
n.param jQuery.js:7
n.extend.ajax jQuery.js:7
saveCurrentNote (index):88
selectNote (index):97
(anonymous function) (index):125
n.event.dispatch jQuery.js:6
r.handle源代码如下:
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl ?>/js/jQuery.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl ?>/js/cryptojs/rollups/sha1.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl ?>/js/cryptojs/rollups/aes.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl ?>/js/cryptojs/rollups/pbkdf2.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl ?>/js/cryptojs/rollups/sha3.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl ?>/js/Basic.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl ?>/js/Auth.js"></script>Basic.js内部:
function encrypt(data, key) {
return CryptoJS.AES.encrypt(data, key);
}
function decrypt(data, key) {
return CryptoJS.AES.decrypt(data, key);
}以及这些函数的用法:
data["name"] = encrypt(data["name"], recall("key"));
data["text"] = encrypt(data["text"], recall("key"));下面是指向CryptoJS库的链接:https://code.google.com/p/crypto-js/
是不是有什么事我没做?
发布于 2015-05-30 06:17:36
这是一个老问题,但我刚刚遇到了同样的问题。问题是CryptoJS.AES.encrypt方法返回的是对象,而不是字符串。
您所需要做的就是修改您的加密函数,如下所示:
function encrypt(data, key) {
return CryptoJS.AES.encrypt(data, key).toString();
}同样,decrypt函数还返回一个对象,以便使用以下命令获取字符串:
function decrypt(data, key) {
return CryptoJS.AES.decrypt(data, key).toString(CryptoJS.enc.Utf8);
}https://stackoverflow.com/questions/22601095
复制相似问题