React Native中常用加解密库(react-native-crypto)使用

在移动App的开发过程中,加解密是确保数据安全的常用手段之一。js中常用的加解密库成熟的非常多,今天重点介绍在React Native环境下的加解密库react-native-crypto。

react-native-crypto,是由crypto封装而来,支持如下的加解密算法、

  • createHash (sha1, sha224, sha256, sha384, sha512, md5, rmd160)

  • createHmac (sha1, sha224, sha256, sha384, sha512, md5, rmd160)

  • pbkdf2

  • pbkdf2Sync

  • randomBytes

  • pseudoRandomBytes

  • createCipher (aes)

  • createDecipher (aes)

  • createDiffieHellman

  • createSign (rsa, ecdsa)

  • createVerify (rsa, ecdsa)

  • createECDH (secp256k1)

  • publicEncrypt/privateDecrypt (rsa)

  • randomFillSync

  • randomFill

接下来上干活,介绍在React Native环境下如何安装、使用及注意实现

1.安装

通常采用npm的方式进行,今天小编推荐采用yarn的方式。yarn要比npm快非常非常非常多,就一个爽,具体命令如下:
yarn add react-native-crypto
# install peer deps 
yarn add react-native-randombytes
react-native link react-native-randombytes   #若环境变量没有配置的话,可能会执行不成功,但不要紧,不会影响后续使用

# install latest rn-nodeify 
yarn add rn-nodeify@latest

上述命令执行完成后,react-native-crypto算是安装完成了,接下来需要使用rn-nodeify进行脚本配置,命令如下:

# install node core shims and recursively hack package.json files 
# in ./node_modules to add/update the "browser"/"react-native" field with relevant mappings 
./node_modules/.bin/rn-nodeify --hack --install

有可能会执行失败,如果失败的话,可以使用最简单的方法进行排除。直接删除node_modules目录,重新同步项目资源后,重新执行上述命令。小编在安装过程中,这个命令失败的概率超过50%,若不成功可以反复上述指导,直到成功位置。这个命令成功执行后,你会发现在你的项目根目录下多出个shim.js的文件

2.使用

在需要使用的文件中引入如下代码,即可使用

import './shim.js'

import crypto from 'crypto'

以下附上小编在项目中的范例代码

 const iv = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);

 const cipherPassword = crypto.createCipheriv('aes128', Buffer.from(ASE128Key), iv);

 var PasswordCipher = cipherPassword.update(Buffer.from(Pwd), 'utf8', 'hex');

此范例为采用ase128对密码进行加密,具体使用时,替换其中AES128Key和Pwd。

小编的项目中因为需要与硬件进行通信,加解密都是在字节的基础上进行的,所以在加密过程中都是将内容转成了ascii数据后完成的,这点有别于js的常用场景。通常情况js下的解密是基于字符串的。

3.使用心得

3.1使用过程中,有不了解react-native-crypto究竟支持哪些算法的,可以使用crypto.getCiphers()得到

3.2小编的项目需要在字节的基础上进行加解密,所以采用的函数crypto.createCipheriv而不是crypto.createCipher。若是字符串的加解密,可以使用后者

3.3react-native-crypto成功安装后,会增加不少福利,项目中除了有react-native-crypto我们直接需要的工具包外,还会多出tcp、udp、http、https等工具包(这里需要格外注意,有可能会与你项目中目前在用的工具包冲突),另外会将常用的工具包做别名处理,已方便后续使用,可以详见package.json

 

上述对react-native-crypto简单介绍,若对您有帮助,请帮忙点个赞,谢谢!若有不清楚的地方,可以留言,我会给您做详细解答

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值