Skip to content

Commit

Permalink
docs: update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
anday013 committed Aug 10, 2024
1 parent 1a550e7 commit 6492f45
Showing 1 changed file with 82 additions and 5 deletions.
87 changes: 82 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,113 @@
# react-native-bcrypt-cpp

Bcrypt implemented in pure C++ and linked to React Native using Turbo Modules
Next-gen React Native library for Bcrypt hashing using pure C++ with Turbo Modules and multithreading for superior performance.

**_NOTE:_** This library can be used only with New Architecture (more information about New Architecture [here](https://github.com/reactwg/react-native-new-architecture))

## Installation

```sh
npm install react-native-bcrypt-cpp
```

or

```sh
yarn add react-native-bcrypt-cpp
```

## Usage

### Asynchronous Hashing (Multithreaded)

```js
import { generateHash, validatePassword } from 'react-native-bcrypt-cpp';

// Generate a hash asynchronously
const hash = await generateHash('password', 12);

// Validate a password against a hash
const isValid = await validatePassword('password', hash);
```

### Synchronous Hashing (Single-threaded)

```js
import {
generateHash,
generateHashSync,
validatePassword,
validatePasswordSync,
} from 'react-native-bcrypt-cpp';

// ...
// Generate a hash synchronously
const hash = generateHashSync('password', 12);

// Validate a password against a hash synchronously
const isValid = validatePasswordSync('password', hash);
```

## API Reference

## API Reference

### `generateHash(password: string, workload: number): Promise<string>`

Asynchronously generates a Bcrypt hash for the given password with the specified workload factor.

**Parameters:**

- `password` (string): The password to hash.
- `workload` (number): The cost factor for the hashing algorithm (e.g., 12).

**Returns:**

- A `Promise` that resolves to a `string` containing the generated hash.

### `validatePassword(password: string, hash: string): Promise<boolean>`

Asynchronously validates the given password against the Bcrypt hash.

**Parameters:**

- `password` (string): The password to validate.
- `hash` (string): The Bcrypt hash to validate against.

**Returns:**

- A `Promise` that resolves to a `boolean` indicating whether the password is valid.

### `generateHashSync(password: string, workload: number): string`

Synchronously generates a Bcrypt hash for the given password with the specified workload factor.

**Parameters:**

- `password` (string): The password to hash.
- `workload` (number): The cost factor for the hashing algorithm (e.g., 12).

**Returns:**

- A `string` containing the generated hash.

### `validatePasswordSync(password: string, hash: string): boolean`

Synchronously validates the given password against the Bcrypt hash.

**Parameters:**

- `password` (string): The password to validate.
- `hash` (string): The Bcrypt hash to validate against.

**Returns:**

- A `boolean` indicating whether the password is valid.

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

---

Expand Down

0 comments on commit 6492f45

Please sign in to comment.