大家好,我是为宽广程序员兄弟操碎了心的小编,每天举荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节俭开发效率,实现不加班不熬夜不掉头发,是我的指标!
明天要举荐的是一款javascript加密库crypto-js,crypto-js是一个前端Javascript规范加密算法库,crypto-js为 JavaScript 提供了各种各样的加密算法。有时候我的项目波及到的敏感数据比拟多,为了信息安全,咱们经常须要对一些数据进行接口加密解决,如编码、将明文转化为暗文、加密比对,目前已反对的算法包含:MD5、 SHA-1、SHA-256、AES、Rabbit、MARC4、HMAC、HMAC-MD5、HMAC-SHA1、HMAC-SHA256、PBKDF2等。
在线测试:https://tool.oschina.net/encrypt
装置
应用npm进行装置
npm install crypto-js
应用
反对nodejs和浏览器
- ES6
import sha256 from 'crypto-js/sha256';import hmacSHA512 from 'crypto-js/hmac-sha512';import Base64 from 'crypto-js/enc-base64';const message, nonce, path, privateKey; // ...const hashDigest = sha256(nonce + message);const hmacDigest = Base64.stringify(hmacSHA512(path + hashDigest, privateKey));
- 模块化
var AES = require("crypto-js/aes");var SHA256 = require("crypto-js/sha256");...console.log(SHA256("Message"));
- 间接援用
<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>
AES加密
- 明文加密
var CryptoJS = require("crypto-js");// Encryptvar ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString();// Decryptvar bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');var originalText = bytes.toString(CryptoJS.enc.Utf8);console.log(originalText); // 'my message'
- 对象加密
var CryptoJS = require("crypto-js");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}]
结尾
本期就分享到这里,我是小编南风吹,专一分享好玩乏味、离奇、实用的开源我的项目及开发者工具、学习资源!
心愿能与大家独特学习交换,欢送关注我的公众号【Github导航站】。
往期举荐
太漂亮了!有了3款开源图标库,不必再去求设计师了
10个相见恨晚的vue.js库!用好了,事倍功半!
太及时了!13个Spring Boot练手我的项目,用好了,升职涨薪不必愁
程序员接私活必备后盾框架,不必反复造轮子,网友:太好用了!
还在从头到尾撸我的项目?这6个SpringBoot我的项目用好了,事倍功半!
「00后缩写黑话翻译器」登上GitHub热榜,中年网民终于能看懂年轻人的awsl