intelogie / cryptojs
This package is auto-updated.
Last update: 2024-09-21 20:00:31 UTC
README
此仓库是未经任何修改直接从位于https://code.google.com/p/crypto-js/的Google Code上托管的CryptoJS项目复制而来。将其托管在GitHub上是为了添加Bower包,以便更好地管理未来的更新。
目录结构
您有两个文件夹
- components
- rollups
rollups文件夹中的文件是components文件夹中一个或多个文件的连接,然后是压缩。这使得rollups文件夹中的文件可以独立包含在您的项目中,无需担心其依赖关系。您可以在以下位置查看rollup和components文件之间的关系:https://code.google.com/p/crypto-js/source/browse/tags/3.1.2/builder/build.yml
安装
如果您不使用Bower,则只需包含rollups文件夹中相应算法的.js文件。UTF8编码器包含在每个rollup js中。如果您需要UTF16或Base64编码器,则还必须从components文件夹中添加相应的文件(请参见以下示例)。
使用Bower
bower install cryptojslib
API
您可以在以下链接中实时测试以下代码: http://jsbin.com/IziHAdIf/1/edit?html,console。
请参阅快速入门指南https://code.google.com/p/crypto-js/#Quick-start_Guide
以下是一些核心使用的快速示例
MD5
MD5是一种广泛使用的哈希函数。它已用于各种安全应用程序,并常用于检查文件的完整性。尽管如此,MD5不具备抗冲突能力,因此不适用于依赖于此属性的SSL证书或数字签名等应用程序。
<script src="http://<mysite>/<libs location>/cryptojslib/rollups/md5.js"></script>
<script src="http://<mysite>/<libs location>/cryptojslib/components/enc-base64-min.js"></script>
<script>
//The hash algorithms accept either strings or instances of CryptoJS.lib.WordArray.
//A WordArray object represents an array of 32-bit words.
//When you pass a string, it's automatically converted to a WordArray encoded as UTF-8.
var hash = CryptoJS.MD5("Message");
alert(hash.toString(CryptoJS.enc.Base64));
</script>
SHA-3
SHA-3是经过五年竞争以选择新的加密哈希算法的获胜者,其中评估了64种竞争设计方案。
<script src="http://<mysite>/<libs location>/cryptojslib/rollups/sha3.js"></script>
<script>
var hash = CryptoJS.SHA3("Message");
//The hash you get back isn't a string yet. It's a WordArray object.
//When you use a WordArray object in a string context,
//it's automatically converted to a hex string.
alert(hash.toString()); //Same as hash.toString(CryptoJS.enc.Hex);
</script>
编码和解码
您可以使用各种编码器将字符串转换为字节数组。您还可以使用解码器将字节数组转换为字符串。
<script>
var wordArray = CryptoJS.enc.Utf8.parse('𤭢');
var utf8 = CryptoJS.enc.Utf8.stringify(wordArray);
console.log(utf8);
</script>
UTF8编码器/解码器包含在core.js中,因此在算法的rollup文件中可用。但是,如果您需要UTF16和Base64编码器,则必须从components文件夹中包含相应的文件(请参见以下MD5哈希与Base64示例)。
与AMD/RequireJS一起使用
CryptoJS尚不支持AMD/RequireJS。但是,添加shims几乎是微不足道的。对于与RequireJS一起使用,使用components中的文件可能比rollups文件夹中的文件更可取,因为您可能已经设置了RequireJS优化器或其他构建过程。要为RequireJS构建shim,请按照以下步骤操作
- 确定所需的算法和编码器/解码器。
- 在此处查找组件和rollups文件之间的关系:https://code.google.com/p/crypto-js/source/browse/tags/3.1.2/builder/build.yml
- 为此关系编写一个shim。
以下是一个示例:假设我们想要使用MD5与Base64编码器。shim将如下所示
require.config({
paths: {
'cryptojs.core': "path/to/cryptojslib/components/core.js",
'cryptojs.md5': "path/to/cryptojslib/components/md5.js",
'cryptojs.base64': "path/to/cryptojslib/components/enc-base64.js"
},
shim: {
'cryptojs.core': {
exports: "CryptoJS"
},
'cryptojs.md5': {
deps: ['cryptojs.core'],
exports: "CryptoJS" //You can also use "CryptoJS.MD5"
},
'cryptojs.base64': {
deps: ['cryptojs.core'],
exports: "CryptoJS" //You can also use "CryptoJS.enc.Base64"
}
}
});
版权
请参阅根目录中的 copyrights.txt 文件,该文件是 Google Code 项目中相应文件的副本。此 GitHub 仓库不对 CryptoJS 原始版本之外的内容主张任何版权。