文档章节

JavaScript加密库Crypto-JS的使用

王振威
 王振威
发布于 2012/07/30 15:13
字数 703
阅读 31512
收藏 24

先来图片一张,看看效果(一个采用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

© 著作权归作者所有

共有 人打赏支持
王振威

王振威

粉丝 500
博文 28
码字总数 20820
作品 0
深圳
程序员
加载中

评论(6)

爱笑的胖子
小程序可以引入吗
zhuganlai
zhuganlai
mark
Skqing
Skqing
前台这样加密
var account = $("#account").val();
var password = $("#password").val();
var pwdmd5 = CryptoJS.MD5(password);
var md5str = pwdmd5.toString();
console.log("加密盐:"+md5str);
var ciphertext = CryptoJS.AES.encrypt(account, md5str);
$("#ciphertext").val(ciphertext);

后台解密的时候报错:
Exception in thread "main" java.lang.NumberFormatException: For input string: "U"
  at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
  at java.lang.Integer.parseInt(Integer.java:492)
  at com.cloudwave.fwcore.utils.security.AesEncrypt.parseHexStr2Byte(AesEncrypt.java:241)
  at com.cloudwave.fwcore.utils.security.AesEncrypt.main(AesEncrypt.java:269)
riverpot
riverpot
谢谢,正好用上了。
异常爱
异常爱
感谢楼主,非常有用的~
李其生
李其生
很有用,学习了
JS异步上传压缩图片,并立即显示图片。

感谢 think2011 这位兄台的JS库:https://github.com/think2011/LocalResizeIMG 先看调用页面: <!doctype html><html><head><meta charset="utf-8"><meta name="viewport" content="width=de......

zerodeng
2015/11/05
0
0
用JavaScript的5个原因

你可能不喜欢JavaScript,也有一个很好的理由。自从90年代末,JavaScript就一直处于崛起阶段,主要是在网站和应用程序开发方面的崛起。 早期不同浏览器之间的不兼容性导致了需要开发各种库,...

samday
2014/05/04
0
0
JS_七种JAVASCRIPT加密/解密方法

本文一共介绍了七种JAVASCRIPT加密方法。   一:最简单的加密解密   二:转义字符的妙用   三:使用Microsoft出品的脚本编码器Script Encoder来进行编码 (自创简单解码)   四:任意...

喵王不瞌睡
2014/12/29
0
0
应用最广的十大Javascript框架

【CSDN 2月20日消息】近日,知名技术开发网站SYS-CON 媒体列出十个应用最广的Javascript框架,文章说,Javascript库已经成为设计优秀网站的基础,当今几乎所有站点都带有Javascript或Ajax元素...

晨曦之光
2012/03/09
0
0
javascript学习资料分享

有志于web前端工作的话,javascript的知识是必不可少的。越学,我越觉得自己所欠缺的越多。路漫漫其修远兮,吾将上下而求索。下面将一些好的资料分享给大家。 JavaScript学习资料: (1)遇见...

小微
2012/04/06
0
5

没有更多内容

加载失败,请刷新页面

加载更多

下一页

golang使用protobuf简易教程

参考文档:https://blog.csdn.net/qq_15437667/article/details/78425151 一、安装protobuf # 去github.com/golang/protobuf下载源码包,# 拷贝到 $GOPATH/src/github.com/golang/protobuf......

科陆李明
昨天
0
0
8月16日 上课截图

小丑鱼00
昨天
0
0
Nginx负载均衡、配置SSL

Nginx负载均衡 在 /usr/local/nginx/conf/vhost/ 下创建一个文件,写入以下内容 加载后用curl测试可以访问设置的网站 www.qq.com ssl原理 HTTPS是一种加密的http协议,如果HTTP通信的数据包在...

黄昏残影
昨天
0
0
String 源码阅读笔记

String源码阅读 本人学习笔记,内容来自于阅读源码和其他博客,水平有限,如有错误,烦请指正。 详情参考: Java 7 源码学习系列(一)——String 请别再拿“String s = new String("xyz");...

等到烟火清凉_
昨天
4
0
Coding and Paper Letter(十二)

资源整理。<!-- more --> 1 Coding: 1.R语言生成的ppt,GeoStat2018会议报告,时空模式分析的报告。 geostat18 2.欧空局哨兵和SMOS的工具集,关于对地观测数据的处理与分析的docker容器。 ...

胖胖雕
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部