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 提交值不为空的元素示例代码
May 10 Javascript
javascript放大镜效果的简单实现
Dec 09 Javascript
Array栈方法和队列方法的特点说明
Jan 24 Javascript
js实现俄罗斯方块小游戏分享
Jan 31 Javascript
原生js实现autocomplete插件
Apr 14 Javascript
微信公众号菜单配置微信小程序实例详解
Mar 31 Javascript
jQuery实现一个简单的验证码功能
Jun 26 jQuery
Vue Spa切换页面时更改标题的实例代码
Jul 15 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
Jun 23 Javascript
解决vue-router 二级导航默认选中某一选项的问题
Nov 01 Javascript
jQuery+ThinkPHP实现图片上传
Jul 23 jQuery
OpenLayers3加载常用控件使用方法详解
Sep 25 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类声明和php类使用方法示例分享
2014/03/29 PHP
php实现webservice实例
2014/11/06 PHP
PHP也能干大事 随机函数
2015/04/14 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
Python中的tuple元组详细介绍
2015/02/02 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
python字符串格式化方式解析
2019/10/19 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
pytorch masked_fill报错的解决
2020/02/18 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
毕业求职自荐信格式是什么
2013/11/19 职场文书
教育实习生的自我评价分享
2013/11/21 职场文书
初中生物教学反思
2014/01/10 职场文书
小学教师国培感言
2014/02/08 职场文书
行政助理的岗位职责
2014/02/18 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
学习雷锋主题班会
2015/08/14 职场文书