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 相关文章推荐
js的写法基础分析
Jan 17 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 Javascript
深入分析jquery解析json数据
Dec 09 Javascript
javascript实现在线客服效果
Jul 15 Javascript
JavaScript实现大图轮播效果
Jan 11 Javascript
JS区分Object与Aarry的六种方法总结
Feb 27 Javascript
基于JavaScript实现的顺序查找算法示例
Apr 14 Javascript
React BootStrap用户体验框架快速上手
Mar 06 Javascript
jQuery each和js forEach用法比较
Feb 27 jQuery
微信小程序利用swiper+css实现购物车商品删除功能
Mar 06 Javascript
优雅地使用loading(推荐)
Apr 20 Javascript
Vue实例的对象参数options的几个常用选项详解
Nov 08 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
Zend 输出产生XML解析错误
2009/03/03 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
2016/11/04 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
Vue+webpack项目基础配置教程
2018/02/12 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
React实现全选功能
2020/08/25 Javascript
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
Python全排列操作实例分析
2018/07/24 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
python实现桌面气泡提示功能
2019/07/29 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
采购意向书范本
2014/03/31 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
军训决心书范文
2015/09/22 职场文书
初二物理教学反思
2016/02/19 职场文书
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python