2.0.1 • Published 4 years ago
react-native-argon2 v2.0.1
react-native-argon2
React Native Wrapper around native Argon2 implementations:
iOS: CatCrypto
Android: argon2kt
Getting started
npm install react-native-argon2 --saveCompatibility Table
| React Native Version | Package Version |
|---|---|
| 0.60 - 0.63.2 | ~0.1.0 |
| 0.63.3 | ^1.0.0 |
Usage
import argon2 from 'react-native-argon2';
const password = 'password';
const salt = '1234567891011121314151617181920212223242526272829303132333435363';
const result = await argon2(password, salt, {});
const { rawHash, encodedHash } = result;
// rawHash: 031d6c82ddede1200f4794605052745dd562bd4db358e23dac1b11c052eff8d9
// encodedHash: $argon2id$v=19$m=32768,t=2,p=1$MTIzNDU2Nzg5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2Mw$Ax1sgt3t4SAPR5RgUFJ0XdVivU2zWOI9rBsRwFLv+NkInput
The package takes in the following variables:
| Parameter | Type |
|---|---|
| password | string |
| salt | string |
| config | object |
| config.iterations | integer |
| config.memory | integer |
| config.parallelism | integer |
| config.hashLength | integer |
| config.mode | string |
You are not required to configure the third parameter which is the config object, however you do have to provide an empty object to it if you are not changing any of the values. You can set config values with the following example:
const result = await argon2(
password,
salt,
{
iterations: 5,
memory: 16 * 1024,
parallelism: 2,
hashLength: 20,
mode: 'argon2i'
}
);Output
rawHash is the hexadecimal representation
encodedHash is the string representation