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 相关文章推荐
javascript 实用的文字链提示框效果
Jun 30 Javascript
JavaScript事件处理器中的event参数使用介绍
May 24 Javascript
js 通过cookie实现刷新不变化树形菜单
Oct 30 Javascript
基于jquery实现全屏滚动效果
Nov 26 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
全面了解addEventListener和on的区别
Jul 14 Javascript
jQuery实现table表格checkbox全选的方法分析
Jul 04 jQuery
详解Webpack-dev-server的proxy用法
Sep 08 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
Jul 05 Javascript
Vue实现商品分类菜单数量提示功能
Jul 26 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
Aug 02 Javascript
微信小程序实现搜索框功能及踩过的坑
Jun 19 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
PHP4与PHP5的时间格式问题
2008/02/17 PHP
用PHP调用Oracle存储过程的方法
2008/09/12 PHP
php cookies中删除的一般赋值方法
2011/05/07 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
python实现文件分组复制到不同目录的例子
2014/06/04 Python
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
python学生信息管理系统
2018/03/13 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
2014年开学第一课活动方案
2014/03/06 职场文书
2014年禁毒工作总结
2014/11/24 职场文书
单位租房协议书范本
2014/12/04 职场文书
2014年政工师工作总结
2014/12/18 职场文书
安全教育观后感
2015/06/17 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
Java实现房屋出租系统详解
2021/10/05 Java/Android
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL