gpt4 book ai didi

javascript - 在 AngularJS 应用程序中包含 CryptoJS - 找不到变量 : CryptoJS

转载 作者:搜寻专家 更新时间:2023-11-01 04:50:16 25 4
gpt4 key购买 nike

我想在我的 AngularJS 应用程序中使用 CryptoJS,但我收到此错误:找不到变量:CryptoJS

我将其包含在我的 index.html 中:

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/rc4.js"></script>

并尝试加密一些东西:

var encrypted = CryptoJS.RC4Drop.encrypt("Message", "Secret Passphrase");

如有任何帮助,我们将不胜感激。

最佳答案

前言:

这个问题我花了点时间才弄清楚。我使用的是 SHA1 库,但实现应该是相同的。我还使用 Bower 来管理我的依赖项,但这不会对您产生任何影响。

解决方案:

在最简单的实现中,您希望在连接所有 NG 依赖项后包含 Crypto 依赖项(这通常在 index.html 的末尾)。对我来说,我包括

<script src="https://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha1.js"></script> 

在我最后一次依赖 NG 之后

<script src="bower_components/angular-route/angular-route.js"></script>

然后我添加我所有的 Angular 脚本( Controller 、服务等)。

如果您使用的是 Bower,则可以通过

安装加密库
bower install https://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha1.js --save

从那里你可以调用 CryptoJS.SHA1('some string');

注意你传入的值必须是字符串

您可以调用 CryptoJS.SHA1('some string').toString(); 来获取散列值。

专业提示:

您还可以创建一个可以注入(inject)所有控件的工厂,以更好地管理您的依赖项。就我而言,我在大约 20 分钟内从 MD5 转换为 SHA-1,这节省了大量时间。

angular.module('someApp')
.factory('crypt', function () {
return {
hash: function (value) {
var str = JSON.stringify(value);
return CryptoJS.SHA1(str).toString();
}
};
});

用于测试:

如果您使用 karma 和 jasmine 来测试您的应用程序,请不要忘记将加密库的路径包含到 karma.conf 文件中的 files 部分。否则你会得到一个持久的 Can't find variable: CryptoJS 错误。

关于javascript - 在 AngularJS 应用程序中包含 CryptoJS - 找不到变量 : CryptoJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26482494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com