avzer/cryptojs

此包最新版本(3.1.2)没有可用的许可证信息。

cryptojs

安装: 13

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

语言:JavaScript

3.1.2 2024-03-24 01:43 UTC

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,请按照以下步骤操作

以下是一个示例:假设我们想使用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,它是谷歌代码项目相应文件的副本。