CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。目前已支持的算法包括:
MD5
SHA-1
SHA-256
AES
Rabbit
MARC4
HMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA256
PBKDF2
List of modules
crypto-js/core
crypto-js/x64-core
crypto-js/lib-typedarrays
crypto-js/md5
crypto-js/sha1
crypto-js/sha256
crypto-js/sha224
crypto-js/sha512
crypto-js/sha384
crypto-js/sha3
crypto-js/ripemd160
crypto-js/hmac-md5
crypto-js/hmac-sha1
crypto-js/hmac-sha256
crypto-js/hmac-sha224
crypto-js/hmac-sha512
crypto-js/hmac-sha384
crypto-js/hmac-sha3
crypto-js/hmac-ripemd160
crypto-js/pbkdf2
crypto-js/aes
crypto-js/tripledes
crypto-js/rc4
crypto-js/rabbit
crypto-js/rabbit-legacy
crypto-js/evpkdf
crypto-js/format-openssl
crypto-js/format-hex
crypto-js/enc-latin1
crypto-js/enc-utf8
crypto-js/enc-hex
crypto-js/enc-utf16
crypto-js/enc-base64
crypto-js/mode-cfb
crypto-js/mode-ctr
crypto-js/mode-ctr-gladman
crypto-js/mode-ofb
crypto-js/mode-ecb
crypto-js/pad-pkcs7
crypto-js/pad-ansix923
crypto-js/pad-iso10126
crypto-js/pad-iso97971
crypto-js/pad-zeropadding
crypto-js/pad-nopadding
官方网:https://code.google.com/archive/p/crypto-js/、https://www.npmjs.com/package/crypto-js
示例代码:
<script type="text/javascript" src="http://crypto-js.googlecode.com/files/2.0.0-crypto-md5.js"></script> <script type="text/javascript"> var digest = Crypto.MD5("Message"); var digestBytes = Crypto.MD5("Message", { asBytes: true }); var digestString = Crypto.MD5("Message", { asString: true }); </script>
散列/哈希
CryptoJS是一个纯javascript写的加密类库,我们使用它只需要加入相关的引用即可:
散列/哈希示例1:
<script type="text/javascript" src="http://www.osctools.net/js/CryptoJS/components/core-min.js"></script> <script type="text/javascript" src="http://www.osctools.net/js/CryptoJS/rollups/md5.js"></script> <script type="text/javascript"> alert("你好,欢迎来到开源中国在线工具,这是一个MD5测试 MD5:"+CryptoJS.MD5("你好,欢迎来到开源中国在线工具,这是一个MD5测试")); </script>
上面就一行代码就可以轻松搞定一个MD5的哈希,使用非常方便。
同样,如果你想进行sha1、sha256等等诸多哈希算法,只需要引入相关的库就行了。
对于 HMAC-sha1 、HMAC-sha256、HMAC-md5等,用法是这样:
散列/哈希示例2
<script type="text/javascript" src="http://www.osctools.net/js/CryptoJS/components/core-min.js"></script> <script type="text/javascript" src="http://www.osctools.net/js/CryptoJS/rollups/hmac-md5.js"></script> <script type="text/javascript"> var pwd="password"; alert("你好,欢迎来到开源中国在线工具,这是一个MD5测试 Hmac-MD5: "+CryptoJS.HmacMD5("你好,欢迎来到开源中国在线工具,这是一个MD5测试",pwd)); </script>
PBKDF2哈希算法
这里将PBKDF2算法单独列出来,是因为他稍有不同,看如下代码:
散列/哈希示例3
<script type="text/javascript" src="http://www.osctools.net/js/CryptoJS/components/core-min.js"></script> <script type="text/javascript" src="http://www.osctools.net/js/CryptoJS/rollups/pbkdf2.js"></script> <script type="text/javascript"> var salt=CryptoJS.enc.Utf8.parse("salt"); //盐 var iter=1000; //迭代次数 var mi=CryptoJS.PBKDF2("你好,欢迎来到开源中国在线工具,这是一个PBKDF2测试", salt, { keySize: parseInt(4), iterations: parseInt(iter) } ); alert("你好,欢迎来到开源中国在线工具,这是一个PBKDF2测试:----------哈希值:"+mi); </script>
加密/解密
加密解密示例1:
<script type="text/javascript" src="http://www.osctools.net/js/CryptoJS/components/core-min.js"></script> <script type="text/javascript" src="http://www.osctools.net/js/CryptoJS/rollups/aes.js"></script> <script type="text/javascript"> var pwd="我的密码"; var mi=CryptoJS.AES.encrypt("你好,欢迎来到开源中国在线工具,这是一个AES加密测试",pwd); alert("你好,欢迎来到开源中国在线工具,这是一个AES加密测试----密文:"+mi); var result=CryptoJS.AES.decrypt(mi,pwd).toString(CryptoJS.enc.Utf8); alert("解密结果:"+result); </script>
同样的,几种加密算法的使用方法都比较类似,需要使用哪个引入相关的js文件就ok了。
这里的在线加密/解密,散列/哈希工具是使用这个库构建的:http://www.osctools.net/encrypt
未经允许请勿转载:程序喵 » JavaScript加密库Crypto-JS的使用