这篇文章主要介绍了JS加密插件CryptoJS实现的DES加密,结合实例形式分析了javascript使用CryptoJS插件进行des加密的各种常见模式使用,需要的朋友可以参考下

本文实例讲述了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="" /></textarea>
<hr>
加密后:<textarea id="target" value="" ></textarea>
<hr>
<input type="button" onclick="test();" name="" value="加密" />
<hr>
密文:<textarea id="sourceS" value="" width="400px" ></textarea>
<hr>
解密后:<textarea id="jiemi" value="" ></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

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

在线DES加密/解密工具:
http://tools.lovean.com/password/des_encode

文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.lovean.com/password/txt_encode

在线编码转换工具(utf-8/utf-32/Punycode/Base64):
http://tools.lovean.com/transcoding/decode_encode_tool

BASE64编码解码工具:
http://tools.lovean.com/transcoding/base64

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.lovean.com/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.lovean.com/password/sha_encode

更多关于JavaScript相关内容可查看本站专题:《JavaScript加密解密汇总》、《JavaScript切换特效与总结》、《JavaScript查找算法总结》、《JavaScript动画特效与汇总》、《JavaScript错误与调试总结》、《JavaScript数据结构与算法总结》、《JavaScript遍历算法与总结》及《JavaScript数算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

最新资讯
深度|苹果“美国制造”秘史:加州两家工厂先后失败

深度|苹果“美国制造

事实上,制造业的转移并没有扼杀硅谷;相反,这里成为了全球
车辆减少、押金难退 共享汽车重蹈共享单车覆辙?

车辆减少、押金难退

到了年底,整个共享汽车行业迎来“洗牌期”。高运营成本
直击|OPPO首个海外研发中心落地印度 专注影像通信

直击|OPPO首个海外研

OPPO近日宣布,OPPO印度海得拉巴研发中心正式成立。该研
易到用车推行新能源网约车 济南春节前投运1000辆

易到用车推行新能源网

易到用车今日宣布施行新能源网约车计划,在全国范围内投
两周之后台湾地区将关闭3G网络 年后全部使用4G

两周之后台湾地区将关

台湾地区将于今年12月31日关闭3G网络。目前,距离年底有
子弹都打不碎的玻璃,为何用手轻轻一碰就碎了?

子弹都打不碎的玻璃,为

其实它原本是普普通通的玻璃。将玻璃融化后滴进冰水里
最新文章
详解mpvue小程序中怎么引入iconfont字体图标

详解mpvue小程序中怎

这篇文章主要介绍了详解mpvue小程序中怎么引入iconfon
JS如何获取地址栏的参数实例讲解

JS如何获取地址栏的参

本篇文章给大家带来了关于JS如何获取地址栏的参数实例
angularJs利用$scope处理升降序的方法

angularJs利用$scope

今天小编就为大家分享一篇angularJs利用$scope处理升
CKEditor4配置与开发详细中文说明文档

CKEditor4配置与开发

网上分享的CKEditor4中文说明很多都只是的部分使用方
angularjs获取到My97DatePicker选中的值方法

angularjs获取到My97D

今天小编就为大家分享一篇angularjs获取到My97DatePic
vue实现一个炫酷的日历组件

vue实现一个炫酷的日

公司业务新开了一个商家管理微信H5移动端项目,日历控件