1.0.9 • Published 5 years ago
react-native-aes-cipher v1.0.9
React Native AES 128/192/256
AES 128/192/256 for react-native

Installation
npm install --save react-native-aes-cipheror
yarn add react-native-aes-cipherInstallation (iOS)
Using CocoaPods (React Native 0.60 and higher)
cd ios
pod installInstallation (Android)
React Native 0.60 and higher
- Linking automatically
Usage
Example
import { NativeModules, Platform } from 'react-native'
var Aes = NativeModules.Aes
const generateKey = (password: string, salt: string, cost: number, length: number) => Aes.pbkdf2(password, salt, cost, length)
const encryptData = (text: string, key: any) => {
    return Aes.randomKey(16).then((iv: any) => {
        return Aes.encrypt(text, key, iv).then((cipher: any) => ({
            cipher,
            iv,
        }))
    })
}
const encryptDataIV = (text: string, key: any, iv:any) => {
  return Aes.encrypt(text, key, iv).then((cipher: any) => ({
    cipher,
    iv,
  }))      
}
const decryptData = (encryptedData: { cipher: any; iv: any; }, key: any) => Aes.decrypt(encryptedData.cipher, key, encryptedData.iv)
const iv_string = '0123456789abcdef0123456789abcdef';
let encrypt_key:any = "";
let encrypt_string:any = "";
let plain_string:any = "1234567890";
let encrypt_iv:any = "";Key Generation
  private AESKey () {
    try {
      generateKey('nixstory@gmail.com', 'SALT', 1000, 256).then((key: any) => {
        encrypt_key = key;
      })
    } catch (e) {
        console.error(e)
    }    
  }Encrypt
  private AESEncrypt () {
    const key = encrypt_key;
    try {
      encryptDataIV(plain_string, key, iv_string).then(({ cipher, iv }) => {
        encrypt_iv = iv;
        encrypt_string = cipher;
      }).catch((error: any) => {})
    } catch (e) {
        console.error(e)
    }
  }Decrypt
  private async AESDecrypt () {
    const key = encrypt_key;
    const iv = encrypt_iv;
    const cipher = encrypt_string;
    try {
      var decrypt_string = await decryptData({ cipher, iv }, key);
      console.log ("plain text : " + decrypt_string);
    } catch (e) {
        console.error(e)
    }
  }IOS Test (Encrypt)
[Tue Aug 18 2020 15:31:58.668]  LOG      [encrypt] plain text : 1234567890
[Tue Aug 18 2020 15:31:58.670]  LOG      [encrypt] encrypt key : 591825e3a4f2c9b8f73eb963c77ad160d4802ad7aadc179b066275bcb9d9cfd2
[Tue Aug 18 2020 15:31:58.670]  LOG      [encrypt] iv : 0123456789abcdef0123456789abcdef
[Tue Aug 18 2020 15:31:58.671]  LOG      [encrypt] encrypt text : hg7zoTXoD/xbcvj64M0iYg==ANDROID Test (Decrypt)
[Tue Aug 18 2020 15:56:21.306]  LOG      [decrypt] encrypt text : hg7zoTXoD/xbcvj64M0iYg==
[Tue Aug 18 2020 15:56:21.308]  LOG      [decrypt] encrypt key : 591825e3a4f2c9b8f73eb963c77ad160d4802ad7aadc179b066275bcb9d9cfd2
[Tue Aug 18 2020 15:56:21.309]  LOG      [decrypt] iv : 0123456789abcdef0123456789abcdef
[Tue Aug 18 2020 15:56:21.310]  LOG      [decrypt] plain text : 1234567890