使用crypto-js库
发布于 5 年前 作者 fzhao 18470 次浏览 来自 问答

从github下载了几个文件,在网页测试是成功的。

<html>
<head>
    <script src="./core.js" type=“text/javascript”></script>
    <script src="./cipher-core.js" type=“text/javascript”></script>
    <script src="./aes.js" type=“text/javascript”></script>
    <script src="./pad-zeropadding.js"  type=“text/javascript”></script>
    <script  type=“text/javascript”>
        var data = “Test String”;
        var key = CryptoJS.enc.Latin1.parse(‘1234567812345678’);
        var iv = CryptoJS.enc.Latin1.parse(‘1234567812345678’);
        //加密
        var encrypted = CryptoJS.AES.encrypt(data, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.ZeroPadding
        });
        //解密
        var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
            iv: iv,
            padding: CryptoJS.pad.ZeroPadding
        });
        console.log(decrypted.toString(CryptoJS.enc.Utf8));
    </script>
</head>
</html>

但是在小程序的页面js文件里,仅仅是包含文件进来就报错了:

var core = require(’…/…/core’)

var cipher = require(’…/…/cipher-core’)

var config = require(’…/…/config’)

var aes = require(’…/…/aes’)

var pad = require(’…/…/pad-zeropadding’)

出错信息说是CryptoJS未定义,在github里的文档都是以npm安装为基础进行的示例说明,参考不了。

4 回复

感谢回复,查清楚了,是git库跟npm安装的文件不同,我用npm安装了crypto-js,把这些文件引入就没问题了,比较了下git库和npm安装的,确实不同:

你引入文件不全吧?需要把所有的文件都放进来的,如果想精简需要看下文档,你把crypto-js.js放进去试试

我是把cryptojs文件直接放在要目录下的

var base64 = require("…/…/…/lib/crypto/enc-base64")

var HmacSHA1 = require("…/…/…/lib/crypto/hmac-sha1")

var utf8 = require("…/…/…/lib/crypto/enc-utf8")

这么使用过,没什么问题呀

回到顶部