首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加密an在解密加密消息时引发的异常。

加密an在解密加密消息时引发的异常。
EN

Stack Overflow用户
提问于 2014-12-09 04:21:42
回答 1查看 13.6K关注 0票数 4

在试图解密加密an加密消息时,我得到了一个异常。下面给出了我的解密javascript代码。我对正在发生的事一无所知。我做了一些调试,可以看到密码核心库中的Base64是未定义的.

代码语言:javascript
复制
function  decrypt(){
    var salt = CryptoJS.enc.Hex.parse("3A79D3242F9D0DCE0C811DCCE7F830C5");
    var iv = CryptoJS.enc.Hex.parse("9BCBD77036744C7F26DF591AE6A772C6");
    var encryptedBase64 =   "eKCnyuKiH3lvknsNZq9hARCr6xtDLU/De7sPc3RPSRFAh7WCurBKmDZx/Ol0mbROBtAJBCT0+U927iygd4GspQ==";
    var key = CryptoJS.PBKDF2("passwordA", salt, { keySize: 128/32, iterations: 100 });   
    console.log('key '+key); 
    var encryptedStr = encryptedBase64; //CryptoJS.enc.Base64.parse(encryptedBase64);
    console.log('encryptedStr  : '+ encryptedStr );    
    var decrypted = CryptoJS.AES.decrypt(encryptedStr, key, { iv: iv, mode:        CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });  
    console.log('decrypted : '+ decrypted);    
    var decryptedText = decrypted.toString(CryptoJS.enc.Utf8); 
    console.log('decrypted text : '+ decryptedText);    
}

我得到以下异常

代码语言:javascript
复制
TypeError: Cannot read property 'parse'
of undefined at Object.m.OpenSSL.parse(http: //domain.com/PEMSWeb/offlinePageDemo/offlineInspectionApp/CryptoJSv3.1.2/components/cipher-core-min.js:12:101)
at Object.f.SerializableCipher.k.extend._parse(http: //domain.com/PEMSWeb/offlinePageDemo/offlineInspectionApp/CryptoJSv3.1.2/components/cipher-core-min.js:13:220)
at Object.f.SerializableCipher.k.extend.decrypt(http: //domain.com/PEMSWeb/offlinePageDemo/offlineInspectionApp/CryptoJSv3.1.2/components/cipher-core-min.js:13:99)
at Object.decrypt(http: //domain.com/PEMSWeb/offlinePageDemo/offlineInspectionApp/CryptoJSv3.1.2/components/cipher-core-min.js:8:308)

我不知道哪里出了问题,...something在加密is中不正确。

更新的

代码语言:javascript
复制
I have the following libraries in my page in the same sequence
1) CryptoJSv3.1.2/components/core-min.js 
2) CryptoJSv3.1.2/components/cipher-core-min.js 
3) CryptoJSv3.1.2/components/enc-base64-min.js 
4) CryptoJSv3.1.2/components/enc-utf16-min.js 
5) CryptoJSv3.1.2/rollups/aes.js 
6) CryptoJSv3.1.2/rollups/pbkdf2.js
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-09 22:23:31

我不知道您为什么需要组件脚本,但您应该更改顺序。这是一种通过反复试验发现的工作顺序:

代码语言:javascript
复制
<script src="components/core-min.js "></script>
<script src="rollups/aes.js"></script>
<script src="components/cipher-core-min.js"></script>
<script src="components/enc-base64-min.js"></script>
<script src="rollups/pbkdf2.js"></script>
<script src="components/enc-utf16-min.js"></script>

所示代码所需的最小覆盖集是

代码语言:javascript
复制
<script src="rollups/aes.js"></script>
<script src="rollups/pbkdf2.js"></script>

core包含在卷中,base64包含在aes中。代码中不需要utf16。我不知道cipher-core做什么,但我想它也包含在aes中。

这些文件可以从谷歌代码存档自动托管.

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27371389

复制
相关文章

相似问题

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