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 相关文章推荐
深入document.write()与HTML4.01的非成对标签的详解
May 08 Javascript
js导航栏单击事件背景变换示例代码
Jan 13 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
May 19 Javascript
jQuery大于号(&gt;)选择器的作用解释
Jan 13 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
Mar 01 Javascript
JavaScript reduce和reduceRight详解
Oct 24 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
Mar 04 Javascript
深入浅出es6模板字符串
Aug 26 Javascript
详解vue2 $watch要注意的问题
Sep 08 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
Feb 03 Javascript
微信小程序如何调用新闻接口实现列表循环
Jul 02 Javascript
原生js实现针对Dom节点的CRUD操作示例
Aug 26 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和MySQL保存和输出图片
2006/10/09 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
PHP使用SOAP调用API操作示例
2018/12/25 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
网页中CDATA标记的说明
2010/09/12 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
解析Python中的__getitem__专有方法
2016/06/27 Python
Django Highcharts制作图表
2016/08/27 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
速比涛英国官网:Speedo英国
2019/07/15 全球购物
医疗专业毕业生求职信
2014/08/28 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
收银员岗位职责
2015/02/03 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
Python django中如何使用restful框架
2021/06/23 Python
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs