npm install react-native-crypto-algorithmor
yarn add react-native-crypto-algorithmcd ios
pod installRun react-native link react-native-crypto-algorithm after which you should be able to use this library on iOS.
- Linking is done automatically
- In android/settings.gradle
...
include ':react-native-crypto-algorithm'
project(':react-native-crypto-algorithm').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-crypto-algorithm/android')- In android/app/build.gradle
...
dependencies {
    ...
    compile project(':react-native-crypto-algorithm')
}- register module (in MainApplication.kt)
......
import com.cryptoalgorithm.CryptoAlgorithmPackage;
......
override fun getPackages(): List<ReactPackage> =
  PackageList(this).packages.apply {
    add(CryptoAlgorithmPackage());
  }- Custom 'secretKey' -> maximum 32 characters . Custom 'ivKey' (optional) -> maximum 16 characters
- π encryptAES(value: string, secretKey: string, ivKey?: string)
- π decryptAES(value: string, secretKey: string, ivKey?: string)
import Crypto from 'react-native-crypto-algorithm';
// Encrypt
let encryptData = await Crypto.encryptAES('my message', 'my private key', 'my iv key(optional maximum 16 characters)');
// Decrypt
let decryptData = await Crypto.decryptAES(encryptData, 'my private key', 'my iv key(optional maximum 16 characters)');- π hashSHA256(value: string)
import Crypto from 'react-native-crypto-algorithm';
// Hash SHA256
let hashData = await Crypto.hashSHA256('my hash data');- π genRSAKeyPair()
- π encryptRSA(value: string, publicKey: string)
- π decryptRSA(value: string, privateKey: string)
import Crypto from 'react-native-crypto-algorithm';
// Generate RSA Key Pair
let keyPair = await Crypto.genRSAKeyPair();
// Encrypt RSA
let encryptData = await Crypto.encryptRSA('my message', keyPair.publicKey);
// Decrypt RSA
let decryptData = await Crypto.decryptRSA(encryptData, keyPair.privateKey);- π genHmacSecretKey() -> use with all HMAC & HMAC_AES
- π encryptHmacAes(value: string, publicKey: string) -> use only for HMAC_AES
- π decryptHmacAes(value: string, privateKey: string) -> use only for HMAC_AES
- π verifyHmac(value: string, privateKey: string) -> use only for HMAC
import Crypto from 'react-native-crypto-algorithm';
// Generate HMAC & HMAC_AES
let genHmacSecretKey = await Crypto.genHmacSecretKey();
// Encrypt HMAC_AES
let encryptData = await Crypto.encryptHmacAes('my message', genHmacSecretKey);
// Decrypt HMAC_AES
let decryptData = await Crypto.decryptHmacAes(encryptData, genHmacSecretKey);
// VerifyHmac HMAC
let verifyHmacData: boolean = await Crypto.verifyHmac('my message', genHmacSecretKey);-  AES(Advanced Encryption Standard)
-  SHA-256 (Secure Hash Algorithm)
-  RSA (Rivest-Shamir-Adleman)
-  ChaCha20
-  Blowfish
-  HMAC (Hash-based Message Authentication Code)
-  PBKDF2 (Password-Based Key Derivation Function 2)
-  ECC (Elliptic Curve Cryptography)
-  Scrypt
-  XChaCha20-Poly1305
Forest Nguyen
Email: devlamnt176@gmail.com
MIT License
Copyright (c) 2024 Forest Nguyen