首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CryptoJS无方法mixIn

CryptoJS无方法mixIn
EN

Stack Overflow用户
提问于 2014-03-24 12:27:30
回答 1查看 2.8K关注 0票数 1

我的浏览器(Chrome)出现以下错误:

代码语言:javascript
复制
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

源代码如下:

代码语言:javascript
复制
<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内部:

代码语言:javascript
复制
function encrypt(data, key) {
return CryptoJS.AES.encrypt(data, key);
}

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

以及这些函数的用法:

代码语言:javascript
复制
data["name"] = encrypt(data["name"], recall("key"));
data["text"] = encrypt(data["text"], recall("key"));

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

是不是有什么事我没做?

EN

回答 1

Stack Overflow用户

发布于 2015-05-30 06:17:36

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

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

代码语言:javascript
复制
function encrypt(data, key) {
   return CryptoJS.AES.encrypt(data, key).toString();
}

同样,decrypt函数还返回一个对象,以便使用以下命令获取字符串:

代码语言:javascript
复制
function decrypt(data, key) {
   return CryptoJS.AES.decrypt(data, key).toString(CryptoJS.enc.Utf8);
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22601095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档