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 相关文章推荐
网页加载时页面显示进度条加载完成之后显示网页内容
Dec 23 Javascript
关于js遍历表格的实例
Jul 10 Javascript
jQuery中的pushStack实现原理和应用实例
Feb 03 Javascript
javascript实现简单的二级联动
Mar 19 Javascript
浅谈jQuery中setInterval()方法
Jul 07 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
Jun 20 Javascript
Javascript中常见的逻辑题和解决方法
Sep 17 Javascript
node.js连接MongoDB数据库的2种方法教程
May 17 Javascript
jquery ajaxfileupload异步上传插件
Nov 21 jQuery
浅谈react-router@4.0 使用方法和源码分析
Jun 04 Javascript
javascript实现获取中文汉字拼音首字母
May 19 Javascript
jQuery实现带进度条的轮播图
Sep 13 jQuery
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
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
JS分页效果示例
2013/10/11 Javascript
Javascript浅谈之this
2013/12/17 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
JS多个表单数据提交下的serialize()应用实例分析
2019/08/27 Javascript
小程序实现图片移动缩放效果
2020/05/26 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
JavaScript实现图片合成下载的示例
2020/11/19 Javascript
简明 Python 基础学习教程
2007/02/08 Python
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
教师实习自我鉴定
2013/12/14 职场文书
工厂保安员岗位职责
2014/01/31 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
浅谈怎么给Python添加类型标注
2021/06/08 Python
Nginx下SSL证书安装部署步骤介绍
2021/12/06 Servers