关于SegmentFault:想加密JavaScript怎么办试试这款加密库

41次阅读

共计 1881 个字符,预计需要花费 5 分钟才能阅读完成。

  大家好,我是为宽广程序员兄弟操碎了心的小编,每天举荐一个小工具 / 源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节俭开发效率,实现不加班不熬夜不掉头发,是我的指标!

  明天要举荐的是一款 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");
// Encrypt
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString();
// Decrypt
var 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

正文完
 0