目前原生js貌似并没有提供MD5计算相关的函数方法,只能自己实现或者使用前辈大神写好的。 一、使用crypto.js库进行加密 GitHub的 https://github
目前原生js貌似并没有提供MD5计算相关的函数方法,只能自己实现或者使用前辈大神写好的。
GitHub的 https://github.com/brix/crypto-js 上下载该js。
它可以单独引入所需要加密方式的js;也可以引入一个crypto-js.js 这个文件,它相当于引入了所有的加密方式。
用法:
<script type="text/javascript" src="path-to/bower_components/crypto-js/crypto-js.js"></script>
<script type="text/javascript">
var encrypted = CryptoJS.AES(...);
var encrypted = CryptoJS.SHA256(...);
</script>
//加密实例一
console.log("加密结果一 MD5:"+CryptoJS.MD5("你好"));
//加密实例二
var pwd="passwor";
console.log("加密结果二 HMac-MD5: "+CryptoJS.HmacMD5("你好",pwd));
普通文本加密
// 加密
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格式的密文
See: Https://cryptojs.gitbook.io/docs/
编码工具:
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);
GitHub的 https://github.com/blueimp/JavaScript-MD5 上下载该js。
举例:
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实现加密与解密详解的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。
--结束END--
本文标题: JavaScript实现加密与解密详解
本文链接: https://www.lsjlt.com/news/150502.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0