avzer / cryptojs
cryptojs
This package is auto-updated.
Last update: 2024-09-24 02:47:31 UTC
README
该仓库是直接从谷歌代码托管库CryptoJS项目(https://code.google.com/p/crypto-js/)复制过来的,没有任何修改。这是托管在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文件夹的相应文件(以下示例中包含MD5哈希和Base64)。
使用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>/cryptojs/rollups/md5.js"></script>
<script src="http://<mysite>/<libs location>/cryptojs/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>/cryptojs/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的支持。然而,添加shim几乎是微不足道的。为了与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/cryptojs/components/core.js",
'cryptojs.md5': "path/to/cryptojs/components/md5.js",
'cryptojs.base64': "path/to/cryptojs/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,它是谷歌代码项目相应文件的副本。