JS加密插件CryptoJS实现的DES加密示例


Posted in Javascript onAugust 16, 2018

本文实例讲述了JS加密插件CryptoJS实现的DES加密。分享给大家供大家参考,具体如下:

前面一篇《JS加密插件CryptoJS实现AES加密操作》介绍了CryptoJS插件的简单配置与使用,这里再来看看CryptoJS实现DES加密的方法:

<!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>

tripledes.js 为 DES主文件 自带 CBC模块

mode-ecb.js 为 DES ECB模块

使用CBC模式引入 tripledes.js

使用 ECB模式引入 tripledes.js + mode-ecb.js

Javascript 相关文章推荐
初探jquery——表单应用范例
Feb 20 Javascript
jquery $(document).ready() 与window.onload的区别
Dec 28 Javascript
javascript 简单抽屉效果的实现代码
Mar 09 Javascript
理解Javascript_08_函数对象
Oct 15 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
Sep 01 Javascript
分享javascript实现的冒泡排序代码并优化
Jun 05 Javascript
js 颜色选择插件
Jan 23 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
Jun 29 Javascript
vue跳转方式(打开新页面)及传参操作示例
Jan 26 Javascript
javascript运行机制之执行顺序理解
Aug 03 Javascript
js+h5 canvas实现图片验证码
Oct 11 Javascript
js实现类选择器和name属性选择器的示例步骤
Feb 07 Javascript
JS加密插件CryptoJS实现AES加密操作示例
Aug 16 #Javascript
实例详解vue.js浅度监听和深度监听及watch用法
Aug 16 #Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
Aug 16 #Javascript
vue watch深度监听对象实现数据联动效果
Aug 16 #Javascript
JS实现的RC4加密算法示例
Aug 16 #Javascript
vue2.0父子组件间传递数据的方法
Aug 16 #Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
Aug 16 #Javascript
You might like
php SQL防注入代码集合
2008/04/25 PHP
10条PHP编程习惯助你找工作
2008/09/29 PHP
PHP中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
php猜单词游戏
2015/09/29 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
2013/11/23 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
python中快速进行多个字符替换的方法小结
2016/12/15 Python
基于python时间处理方法(详解)
2017/08/14 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
基于python实现学生管理系统
2018/10/17 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
学校卫生检查制度
2014/02/03 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
师德标兵事迹材料
2014/12/19 职场文书
工作自我评价范文
2015/03/05 职场文书
财务人员入职担保书
2015/09/22 职场文书
python分分钟绘制精美地图海报
2022/02/15 Python