React Native Wrapper around Argon2
npm install react-native-argon2bash
npm install react-native-argon2 --save
`
Compatibility Table
| React Native Version | Package Version |
|----------------------|-----------------|
| 0.60 - 0.63.2 | ~0.1.0 |
| 0.63.3 | ^1.0.0 |
Usage
`javascript
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+Nk
`
$3
The 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:
`javascript
const result = await argon2(
password,
salt,
{
iterations: 5,
memory: 16 * 1024,
parallelism: 2,
hashLength: 20,
mode: 'argon2i'
}
);
`
$3
rawHash is the hexadecimal representation
encodedHash` is the string representation