CryptoJS没有方法mixIn

我在浏览器中遇到以下错误(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="request->baseUrl ?>/js/jQuery.js"> <script type="text/javascript" src="request->baseUrl ?>/js/cryptojs/rollups/sha1.js"> <script type="text/javascript" src="request->baseUrl ?>/js/cryptojs/rollups/aes.js"> <script type="text/javascript" src="request->baseUrl ?>/js/cryptojs/rollups/pbkdf2.js"> <script type="text/javascript" src="request->baseUrl ?>/js/cryptojs/rollups/sha3.js"> <script type="text/javascript" src="request->baseUrl ?>/js/Basic.js"> <script type="text/javascript" src="request->baseUrl ?>/js/Auth.js"> 

在Basic.js里面:

 function encrypt(data, key) { return CryptoJS.AES.encrypt(data, key); } function decrypt(data, key) { return CryptoJS.AES.decrypt(data, key); } 

以及这些function的用法:

 data["name"] = encrypt(data["name"], recall("key")); data["text"] = encrypt(data["text"], recall("key")); 

以下是CryptoJS库的链接: https : //code.google.com/p/crypto-js/

有什么我不做的事吗?

这是一个老问题,但我遇到了同样的问题。 问题是CryptoJS.AES.encrypt方法返回的对象不是字符串。

您需要做的就是修改加密function,如下所示:

 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); }