尊重版权,未经授权不得转载
本文来自brix 文章来自江清清的技术专栏(http://www.lcode.org)
项目库地址:https://github.com/brix/crypto-js
(一).前言
之前很多朋友问有没有非常OK的,MD5,AES,DES相关库,需要在React Native上面进行使用。之前我也封装过一下MD5和AES相关的库,但是那个是在原生模块基础上面进行封装的,使用起来非常不便捷。其实做加密操作,加密标准都是统一的,直接有相关JavaScript库可以用来使用,今天给大家推荐一款前端加密库,直接安装就即可在React Native上面进行使用。常用的MD5,AES,SHA等等一系列的加密方法都已经封装好了。
(二).安装
必须依赖环境
- Node.js
- npm (Node.js package manager)
1
|
npm install crypto-js
|
(三).引入方法
模块引入方法
1
2
3
4
|
var
AES = require(
"crypto-js/aes"
);
var
SHA256 = require(
"crypto-js/sha256"
);
...
console.log(SHA256(
"Message"
));
|
或者引导所有的库,进行方法调用
1
2
|
var
CryptoJS = require(
"crypto-js"
);
console.log(CryptoJS.HmacSHA1(
"Message"
,
"Key"
));
|
(四).使用方法
这边简单介绍一下其中AES加密的使用方法。具体该库还有其他很多的标准加密的API请查看:https://code.google.com/archive/p/crypto-js/ 注意该地址请自带梯子访问。
AES加解密演示
4.1.普通文本AES加解密实例
1
2
3
4
5
6
7
8
9
10
|
var
CryptoJS = require(
"crypto-js"
);
// Encrypt
var
ciphertext = CryptoJS.AES.encrypt(
'my message'
,
'secret key 123'
);
// Decrypt
var
bytes = CryptoJS.AES.decrypt(ciphertext.toString(),
'secret key 123'
);
var
plaintext = bytes.toString(CryptoJS.enc.Utf8);
console.log(plaintext);
|
4.2.简单对象加解密实例
1
2
3
4
5
6
7
8
9
10
11
12
|
var
CryptoJS = require(
"crypto-js"
);
var
data = [{id: 1}, {id: 2}]
// Encrypt
var
ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data),
'secret key 123'
);
// Decrypt
var
bytes = CryptoJS.AES.decrypt(ciphertext.toString(),
'secret key 123'
);
var
decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
console.log(decryptedData);
|
(五).该库模块列表