AES encryption/decryption for React Native

AES encryption/decryption for React Native

React Native AES 128/192/256 AES encryption/decryption for react-native

React Native AES 128/192/256

AES encryption/decryption for react-native

Installation

npm install --save react-native-aes-cipher

or

yarn add react-native-aes-cipher

Installation (iOS)

Using CocoaPods (React Native 0.60 and higher)
cd ios
pod install

Installation (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('[email protected]', '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

Download Details:

Author: reactspring

Source Code: https://github.com/reactspring/react-native-aes-cipher

react-native react mobile-apps

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

How native is React Native? | React Native vs Native App Development

Article covers: How native is react native?, React Native vs (Ionic, Cordova), Similarities and difference between React Native and Native App Development.

React Native Mobile App Development

Skenix is providing React Native Development Services with qualified React Native App Developers. Get the best React Native App Development Services.

How React Native Is Shaping Mobile App Development

Are you a mobile app developer looking for more efficient tools for your projects? Mobile app development is getting tougher and tougher as the market continues to grow. As a developer, you need to develop Apps which meet the demands of your users. To achieve this, adopt the right tools, like the React Native development framework.

Top React Native Mobile App Development Companies in USA

Looking for top React Native mobile app development company in USA for Startups & Enterprise? Find out the top list of React Native mobile app development company in USA.

Which is the best React Native app development company in New York?

Hire top react native app development company in New York to build and develop custom react native mobile apps for Android & iOS with the latest features.