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加解密功能页面
Dec 12 Javascript
Javascript将string类型转换int类型
Dec 09 Javascript
javascript中call和apply的用法示例分析
Apr 02 Javascript
jquery淡入淡出效果简单实例
Jan 14 Javascript
微信JS接口大全
Aug 25 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
Sep 23 Javascript
在javaScript中检测数据类型的几种方式小结
Mar 04 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
Aug 08 Javascript
Vue-不允许嵌套式的渲染方法
Sep 13 Javascript
微信小程序中使用echarts的实现方法
Apr 24 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
Jun 07 Javascript
详解阿里Node.js技术文档之process模块学习指南
Jan 04 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
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
基于js实现checkbox批量选中操作
2016/11/22 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
node跨域请求方法小结
2017/08/25 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
es6中比较有用的7个技巧小结
2019/07/12 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
Python正则表达式常用函数总结
2017/06/24 Python
python yield关键词案例测试
2019/10/15 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
业务助理岗位职责
2013/11/18 职场文书
团队激励口号
2014/06/06 职场文书
校园文化标语
2014/06/18 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
优秀党员事迹材料
2014/12/18 职场文书
项目负责人岗位职责
2015/02/15 职场文书
义诊活动通知
2015/04/24 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
《金钱的魔力》教学反思
2016/02/20 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js