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 简单导航实现代码
Sep 11 Javascript
JavaScript 放大镜 移动镜片效果代码
May 09 Javascript
zTree插件之多选下拉菜单实例代码
Nov 06 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
Jun 23 Javascript
jQuery trigger()方法用法介绍
Jan 13 Javascript
如何动态加载外部Javascript文件
Dec 02 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
Mar 30 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
Apr 21 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
Feb 22 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
Jan 06 Javascript
nuxt配置通过指定IP和端口访问的实现
Jan 08 Javascript
解决vue项目 build之后资源文件找不到的问题
Sep 12 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
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
PHP 代码规范小结
2012/03/08 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
javascript 单选框,多选框美化代码
2008/08/01 Javascript
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
js的一些常用方法小结
2011/06/29 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
python的re模块应用实例
2014/09/26 Python
Python实现读取json文件到excel表
2017/11/18 Python
python模拟表单提交登录图书馆
2018/04/27 Python
django 自定义过滤器的实现
2019/02/26 Python
利用python实现周期财务统计可视化
2019/08/25 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
高山背包:High Sierra
2017/11/23 全球购物
会计专业自我鉴定范文
2013/10/06 职场文书
水污染治理专业毕业生推荐信
2013/11/14 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
协议书范文
2015/01/27 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript
Python获取字典中某个key的value
2022/04/13 Python
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python