zoukankan      html  css  js  c++  java
  • JavaScript加密库CryptoJS的使用

    先来图片一张,看看效果(一个采用Crypto-JS实现的加密/解密工具展示):

    CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。目前已支持的算法包括:

    • MD5
    • SHA-1
    • SHA-256
    • AES
    • Rabbit
    • MARC4
    • HMAC
      • HMAC-MD5
      • HMAC-SHA1
      • HMAC-SHA256
    • PBKDF2

    散列/哈希

    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

  • 相关阅读:
    移动端 css 禁止长按屏幕选中
    找到并替换 字符串中最后一个(不一定是末尾最后一个) 指定字符
    event.preventDefault() 解决按钮多次点击 导致页面变大
    history.go(-1)在不同浏览器中的解析
    clean-css 安装 使用
    Objective-C通过联合存储为类增加属性及原理解析
    IOS-CGAffineTransformMake 矩阵变换 的运算原理
    iOS--inputView和inputAccessoryView
    Objective-C中的@Property详解
    Objective-C--Runtime机制
  • 原文地址:https://www.cnblogs.com/jack230230/p/2631301.html
Copyright © 2011-2022 走看看