JavaScript如何实现加密与解密
这篇“JavaScript如何实现加密与解密”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript如何实现加密与解密”文章吧。
一、使用crypto.js库进行加密
它可以单独引入所需要加密方式的js;也可以引入一个crypto-js.js 这个文件,它相当于引入了所有的加密方式。
用法:
<script type="text/javascript" class="lazy" data-src="path-to/bower_components/crypto-js/crypto-js.js"></script><script type="text/javascript"> var encrypted = CryptoJS.AES(...); var encrypted = CryptoJS.SHA256(...);</script>
1、举例:
Hash加密:
//加密实例一 console.log("加密结果一 MD5:"+CryptoJS.MD5("你好")); //加密实例二 var pwd="passwor";console.log("加密结果二 Hmac-MD5: "+CryptoJS.HmacMD5("你好",pwd));
AES对称加密:
普通文本加密
// 加密var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString();// 解密var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');var originalText = bytes.toString(CryptoJS.enc.Utf8);console.log(originalText); // 'my message'
对象加密
var data = [{id: 1}, {id: 2}]// 加密var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString();// 解密var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));console.log(decryptedData); // [{id: 1}, {id: 2}]
Custom Key and IV
var key = CryptoJS.enc.Utf8.parse('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'); //密钥 var iv = CryptoJS.enc.Utf8.parse('1234567812345678');// 加密var encrypted = CryptoJS.AES.encrypt("Message", key, { iv: iv });// 解密var decrypted =CryptoJS.AES.decrypt(encrypted,key, { iv:iv, mode:CryptoJS.mode.CBC, padding:CryptoJS.pad.Pkcs7 });var originalText = decrypted.toString(CryptoJS.enc.Utf8);
Block Modes and Padding
var key = CryptoJS.enc.Utf8.parse('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'); //密钥 var iv = CryptoJS.enc.Utf8.parse('1234567812345678');var encrypted =CryptoJS.AES.encrypt("Message", ,key, { iv:iv, mode:CryptoJS.mode.CBC, padding:CryptoJS.pad.Pkcs7 }); //返回的是base64格式的密文
2、API
编码工具:
var words = CryptoJS.enc.Base64.parse("SGVsbG8sIFdvcmxkIQ==");var base64 = CryptoJS.enc.Base64.stringify(words);var words = CryptoJS.enc.Hex.parse("48656c6c6f2c20576f726c6421");var hex = CryptoJS.enc.Hex.stringify(words);var words = CryptoJS.enc.Utf8.parse("");var utf8 = CryptoJS.enc.Utf8.stringify(words);
二、使用JavaScript-MD5库进行加密
举例:
Calculate the (hex-encoded) MD5 hash of a given string value:
var hash = md5('value') // "2063c1608d6e0baf80249c42e2be5804"var v1= md5('{"name":"嘻嘻嘻嘻嘻嘻嘻嘻嘻","age":22}'); //56b21847ed32d2d96cf74077b22342eb
Calculate the (hex-encoded) HMAC-MD5 hash of a given string value and key:
var hash = md5('value', 'key') // "01433efd5f16327ea4b31144572c67f6"
Calculate the raw MD5 hash of a given string value:
var hash = md5('value', null, true)
Calculate the raw HMAC-MD5 hash of a given string value and key:
var hash = md5('value', 'key', true)
以上就是关于“JavaScript如何实现加密与解密”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341