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验证用户输入URL地址是否为空及格式是否正确
Oct 09 Javascript
js点击按钮实现带遮罩层的弹出视频效果
Dec 19 Javascript
使用Javascript实现选择下拉菜单互移并排序
Feb 23 Javascript
AngularJS打开页面隐藏显示表达式用法示例
Dec 25 Javascript
JS获取多维数组中相同键的值实现方法示例
Jan 06 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
Jan 23 Javascript
利用JS实现scroll自定义滚动效果详解
Oct 17 Javascript
Vue 项目部署到服务器的问题解决方法
Dec 05 Javascript
Vue源码探究之状态初始化
Nov 14 Javascript
浅谈Vue项目骨架屏注入实践
Aug 05 Javascript
详解Vue3中对VDOM的改进
Apr 23 Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 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
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
由php的call_user_func传reference引发的思考
2010/07/23 PHP
php debug 安装技巧
2011/04/30 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
jquery 3D球状导航的文章分类
2010/07/06 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
简单实现js鼠标跟随效果
2020/08/02 Javascript
VUE中的无限循环代码解析
2017/09/22 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
python逆向入门教程
2018/01/15 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
python文件操作的简单方法总结
2019/11/07 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
新闻学毕业生自荐信
2013/11/15 职场文书
《春笋》教学反思
2014/04/15 职场文书
2014年政教处工作总结
2014/12/20 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
2019各种承诺书范文
2019/06/24 职场文书
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python
css样式important规则的正确使用方式
2022/06/10 HTML / CSS