JS使用插件cryptojs进行加密解密数据实例


Posted in Javascript onMay 11, 2017

本文实例讲述了JS使用插件cryptojs进行加密解密数据。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Testing websockets</title>
<script type="text/javascript" src="jquery-1.10.1.js"></script>
<script src="tripledes.js"></script>
<script src="mode-ecb-min.js"></script>
<script type="text/javascript">
var key = 'BOTWAVEE';
//CBC模式加密
function encryptByDESModeCBC(message) {
var keyHex = CryptoJS.enc.Utf8.parse(key);
    var ivHex = CryptoJS.enc.Utf8.parse(key);
    encrypted = CryptoJS.DES.encrypt(message, keyHex, {
    iv:ivHex,
    mode: CryptoJS.mode.CBC,
    padding:CryptoJS.pad.Pkcs7
    }
    );
return encrypted.ciphertext.toString();
}
//CBC模式解密
function decryptByDESModeCBC(ciphertext2) {
var keyHex = CryptoJS.enc.Utf8.parse(key);
    var ivHex = CryptoJS.enc.Utf8.parse(key);
// direct decrypt ciphertext
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Hex.parse(ciphertext2)
}, keyHex, {
iv:ivHex,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
//DES ECB模式加密
function encryptByDESModeEBC(message){
var keyHex = CryptoJS.enc.Utf8.parse(key);
var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.ciphertext.toString();
}
//DES ECB模式解密
function decryptByDESModeEBC(ciphertext){
var keyHex = CryptoJS.enc.Utf8.parse(key);
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Hex.parse(ciphertext)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
var result_value = decrypted.toString(CryptoJS.enc.Utf8);
return result_value;
}
function test(){
var source = $("#source").val();
var cc = encryptByDESModeEBC(CryptoJS.enc.Utf8.parse(source));
$("#target").val(cc);
}
function test1(){
var source = $("#sourceS").val();
var dd = decryptByDESModeEBC(source);
$("#jiemi").val(dd);
}
</script>
</head>
<body>
 <div>
加密前:<textarea id="source" value="" style="width:500px;height:90px;" /></textarea>
<hr>
加密后:<textarea id="target" value="" style="width:500px;height:90px;" ></textarea>
<hr>
<input type="button" onclick="test();" name="" value="加密" />
<hr>
密文:<textarea id="sourceS" value="" width="400px" style="width:500px;height:90px;" ></textarea>
<hr>
解密后:<textarea id="jiemi" value="" style="width:500px;height:90px;" ></textarea>
<hr>
<input type="button" onclick="test1();" name="" value="解密"/>
 </div>
</body>
</html>

Javascript 相关文章推荐
js封装的textarea操作方法集合(兼容很好)
Nov 16 Javascript
ajax的hide隐藏问题解决方法
Dec 11 Javascript
获取内联和链接中的样式(js代码)
Apr 11 Javascript
jquery的live使用注意事项
Feb 18 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
Aug 07 Javascript
微信小程序 条件渲染详解
Oct 09 Javascript
基于BootStrap的前端分页带省略号和上下页效果
May 18 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
Aug 17 jQuery
解决koa2 ctx.render is not a function报错问题
Aug 07 Javascript
微信小程序云开发之模拟后台增删改查
May 16 Javascript
uin-app+mockjs实现本地数据模拟
Aug 26 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
Oct 29 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
May 11 #Javascript
JS实现的四级密码强度检测功能示例
May 11 #Javascript
详解Vue中状态管理Vuex
May 11 #Javascript
JS简单生成随机数(随机密码)的方法
May 11 #Javascript
ionic实现下拉刷新载入数据功能
May 11 #Javascript
vue2的todolist入门小项目的详细解析
May 11 #Javascript
ionic实现底部分享功能
May 11 #Javascript
You might like
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
JS 面向对象的5钟写法
2009/07/31 Javascript
禁止js文件缓存的代码
2010/04/09 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
使用svg实现动态时钟效果
2018/07/17 Javascript
新手简单了解vue
2019/05/29 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
Python入门篇之函数
2014/10/20 Python
python字符类型的一些方法小结
2016/05/16 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
python取数作为临时极大值(极小值)的方法
2018/10/15 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
机电一体化专业推荐信
2013/12/03 职场文书
和平主题的演讲稿
2014/01/12 职场文书
装修致歉信
2014/01/15 职场文书
优秀部门获奖感言
2014/02/14 职场文书
绿色学校实施方案
2014/03/31 职场文书
医院义诊活动总结
2014/07/04 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
鲁迅故居导游词
2015/02/05 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
公司停电通知
2015/04/15 职场文书