How to Encrypt data in React native (Using Expo)

 ̄綄美尐妖づ 提交于 2020-11-29 10:29:11

问题


I'm trying to simply encrypt a message using a given key and iV. I've tried several libraries to achieve this but Expo isn't compatible with any of them. I couldn't find any encryption libraries for Expo (That support AES). I guess my question is : How do I encrypt data in React Native running Expo

Ps : I am not interested in expo-crypto


回答1:


Another possibility (what I did) is to use the CryptoES library.

https://www.npmjs.com/package/crypto-es

After long search I found it, it is a continued development of the 3.1 version of the CryptoJS library and can be used with Expo.




回答2:


Use crypto-js@3.1 , 3.1.x version use Math.random() and doesn't require node "crypto" package. It's not as safe as the latest version but works for me.

yarn add crypto-js@3.1 

I only use it for decrypting. If you really need it for some security requirements I suggest you encrypt it in server node enviroment.




回答3:


I decided to use jshashes for my React-native & Expo project. The goal of this module is to reimplement hash node's crypto functions in pure javascript without dependency on node:

yarn add jshashes



回答4:


first use this command :

npm i crypto-es 

then now you should import it with this command :

import CryptoES from "crypto-es";

then you should encrypt the text : for example :

var mytexttoEncryption = "Hello" 
const encrypted = CryptoES.AES.encrypt(mytexttoEncryption ,"your password").toString();

now for decryption : install the package of crypto-js with this command :

npm i crypto-js 

then lets decrypt it

var C = require("crypto-js");

 var Decrypted = C.AES.decrypt(E, "your password");
var result =Decrypted.toString(C.enc.Utf8);

console.log(result)

so use this it will be ok



来源:https://stackoverflow.com/questions/60733815/how-to-encrypt-data-in-react-native-using-expo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!