【React Native】AES+Base64加密
前言
在移动端App开发中,AES加密非常常用,本文主要讲解如何在React Native
中封装自己的AES加密工具类及会遇到的坑。这里的AES加密是基于前端常用的加密库**crypto-js
**。
安装crypto-js
使用NPM或者Yarn安装crypto-js
1 | # NPM |
注意:使用crypto-js
4.0.0及以上的版本会报找不到Crypto.js的错,这可能是新版本的Bug,需要在package.json
中找到crypto-js
并把版本号指定为^3.3.0
(与3.3.0版本兼容,相当于3.X.X, 即>=3.3.0 < 4.0.0,不改变大版本号),然后重新执行npm install
:
1 | "crypto-js": "^3.3.0", // |
创建加密工具类
新建AESTool.js
文件,添加如下代码:
1 | import CryptoJS from 'crypto-js' |
这里使用的是CBC
加密模式,使用了Pkcs7
补码方式。需要注意的是加密方法里传的明文、偏移量、密钥等参数都需要使用CryptoJS.enc.Utf8.parse()
方法解析之后使用。
注意:这里CryptoJS
加密后的字符串就是Base64
编码的,不需要重复进行Base64编码。解密的时候也直接传Base64
字符串即可。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.