React Native Wrapper around native Argon2 implementations:
iOS: Argon2Swift
Android: argon2kt
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 |
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+NkThe package takes in the following variables:
| Parameter | Type | Description |
|---|---|---|
| password | string | |
| salt | string | |
| config | object | |
| config.iterations | integer | |
| config.memory | integer | |
| config.parallelism | integer | |
| config.hashLength | integer | |
| config.mode | string | |
| config.saltEncoding | 'hex' | 'utf8' | Optional. 'utf8' (default, for backward compatibility) or 'hex'. Use 'hex' to provide a hexadecimal-encoded salt 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'
}
);rawHash is the hexadecimal representation
encodedHash is the string representation