本文实例讲述了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
ps:关于加密解密感兴趣的朋友还可以参考本站在线工具:
在线des加密/解密工具:
文字在线加密解密工具(包含aes、des、rc4等):
在线编码转换工具(utf-8/utf-32/punycode/base64):
base64编码解码工具:
在线md5/hash/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160加密工具:
在线sha1/sha224/sha256/sha384/sha512加密工具:
更多关于javascript相关内容可查看本站专题:《javascript加密解密技巧汇总》、《javascript切换特效与技巧总结》、《javascript查找算法技巧总结》、《javascript动画特效与技巧汇总》、《javascript错误与调试技巧总结》、《javascript数据结构与算法技巧总结》、《javascript遍历算法与技巧总结》及《javascript数学运算用法总结》
希望本文所述对大家javascript程序设计有所帮助。
如对本文有疑问, 点击进行留言回复!!
同事牛逼啊,写了个隐藏 bug,我排查了 3 天才解决问题!
【JavaScript笔记(一)】万丈高楼平地起 - 基本概念篇
轻松解决 org.apache.taglibs.standard.tlv.JstlCoreTLV 困惑
网友评论