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 相关文章推荐
jQeury淡入淡出需要注意的问题
Sep 08 Javascript
调用innerHTML之后onclick失效问题的解决方法
Jan 28 Javascript
JQuery标签页效果的两个实例讲解(4)
Sep 17 Javascript
利用forever和pm2部署node.js项目过程
May 10 Javascript
JavaScript中立即执行函数实例详解
Nov 04 Javascript
微信小程序实现下载进度条的方法
Dec 08 Javascript
Javascript Promise用法详解
May 10 Javascript
更优雅的微信小程序骨架屏实现详解
Aug 07 Javascript
解决layui轮播图有数据不显示的情况
Sep 16 Javascript
微信小程序保存图片到相册权限设置
Apr 09 Javascript
js简单实现自动生成表格功能示例
Jun 02 Javascript
使用webpack和rollup打包组件库的方法
Feb 25 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
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
PHP 冒泡排序算法的实现代码
2010/08/08 PHP
php 发送带附件邮件示例
2014/01/23 PHP
浅析PHP文件下载原理
2014/12/25 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
Python之列表实现栈的工作功能
2019/01/28 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
使用css实现android系统的loading加载动画
2019/07/25 HTML / CSS
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
代理班主任的自我评价
2014/02/04 职场文书
烹饪自我鉴定
2014/03/01 职场文书
付款委托书范本
2014/10/05 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js