intelogie/cryptojs

该软件包最新版本(dev-master)没有提供许可证信息。

维护者

详细信息

github.com/INTELOGIE/CryptoJS

源代码

安装次数: 1,048

依赖关系: 0

建议者: 0

安全性: 0

星星: 0

观察者: 2

分支: 561

语言:JavaScript

dev-master 2016-08-10 20:34 UTC

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

以下是一个示例:假设我们想要使用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 原始版本之外的内容主张任何版权。