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 最简单易用的表单验证插件
Feb 27 Javascript
Jquery 数据选择插件Pickerbox使用介绍
Aug 24 Javascript
原生javascript和jquery判断浏览器版本等信息
Jul 04 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
Sep 01 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
Sep 03 Javascript
jQuery内容过滤选择器用法分析
Feb 10 Javascript
JavaScript中的条件判断语句使用详解
Jun 03 Javascript
Javascript 函数的四种调用模式
Nov 05 Javascript
概述如何实现一个简单的浏览器端js模块加载器
Dec 07 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
Nov 29 Javascript
Layui实现主窗口和Iframe层参数传递
Nov 14 Javascript
基于JS判断对象是否是数组
Jan 10 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
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
2007/01/29 PHP
PHP命名空间(Namespace)的使用详解
2013/05/04 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
jquery弹出框的用法示例(2)
2013/08/26 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
Python类中self参数用法详解
2020/02/13 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
杭州-DOTNET笔试题集
2013/09/25 面试题
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
草船借箭教学反思
2014/02/03 职场文书
公职人员索取回扣检举信
2014/04/04 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
上党课的心得体会
2014/09/02 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
大学生自荐书范文
2015/03/05 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
投资申请报告
2015/05/19 职场文书
办公室管理规章制度
2015/08/04 职场文书
课题研究阶段性总结
2015/08/13 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
Flask response响应的具体使用
2021/07/15 Python
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android