UNPKG

react-native-encrypted-asyncstorage

Version:

**TAGS** **React Native** **Android** **iOS** **Encrypted** **Encrypted Storage** **Asyncstorage**

44 lines (41 loc) 1.56 kB
import AsyncStorage from "@react-native-async-storage/async-storage"; import CryptoJS from "react-native-crypto-js" export const Set_Encrypted_AsyncStorage = async (type, key, data, encryptionKey) => { if (type === "text") { let encryptedData = CryptoJS.AES.encrypt(data.toString(), String(encryptionKey)).toString(); await AsyncStorage.setItem(key.toString(), encryptedData); return true; } else if (type === "object") { let DATA = JSON.stringify(data); let encryptedData = CryptoJS.AES.encrypt(DATA.toString(), String(encryptionKey)).toString(); await AsyncStorage.setItem(key.toString(), encryptedData); return true; } } //h export const Get_Encrypted_AsyncStorage = async (type, key, encryptionKey) => { if (type === "text") { let data = await AsyncStorage.getItem(key.toString()); if (data === null) { return null; } else { let bytes = CryptoJS.AES.decrypt(data, String(encryptionKey)); let unencryptData = bytes.toString(CryptoJS.enc.Utf8); return unencryptData; } } else if (type === "object") { let data = await AsyncStorage.getItem(key.toString()); if (data === null) { return null; } else { let bytes = CryptoJS.AES.decrypt(data, String(encryptionKey)); let unencryptData = bytes.toString(CryptoJS.enc.Utf8); let JSONData = JSON.parse(unencryptData); return JSONData; } } }