https://github.com/drazail/react-hash
React library of cryptography standards
https://github.com/drazail/react-hash
cryptography hash react reactjs
Last synced: 2 days ago
JSON representation
React library of cryptography standards
- Host: GitHub
- URL: https://github.com/drazail/react-hash
- Owner: Drazail
- License: apache-2.0
- Created: 2022-07-14T02:30:53.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-17T07:02:55.000Z (over 2 years ago)
- Last Synced: 2025-09-18T08:41:27.925Z (24 days ago)
- Topics: cryptography, hash, react, reactjs
- Language: JavaScript
- Homepage: https://drazail.github.io/react-hash-demo/
- Size: 742 KB
- Stars: 2
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# react-hash
## Getting started
`$ npm install react-hash --save`
---
## Usage
### Constants
```
HashAlgorithms : Record;
``````
HmacAlgorithms : Record;
```#### Example
```javascript
import { CONSTANTS } from 'react-hash';const hashAlgorithm = CONSTANTS.HashAlgorithms.sha256;
const hmacAlgorithm = CONSTANTS.HmacAlgorithms.HmacSHA512;
```
***
# Cross Platform APIif you are using something besides react, as `JSHash` and `JSHmac` are pure javaScript implementations they should work in any JS enviroment.
***#### Hash Algorithm :
`"MD2" | "MD5"| "SHA-1"| "SHA-224" | "SHA-256" | "SHA-384" | "SHA-512"| "keccak"`
#### HMac Algorithm :
`"HmacMD5" | "HmacSHA1" | "HmacSHA224" | "HmacSHA256" | "HmacSHA384" | "HmacSHA512"`
#### API:
```
JSHash(message: string, algorithm: string):Promise;
```
```
JSHmac(message: string, secret: string, algorithm: string): Promise;
```#### Example :
```javascript
import { JSHash, JSHmac, CONSTANTS } from "react-hash";JSHash("message", CONSTANTS.HashAlgorithms.sha256)
.then(hash => console.log(hash))
.catch(e => console.log(e));JSHmac("message", "SecretKey", CONSTANTS.HmacAlgorithms.HmacSHA256)
.then(hash => console.log(hash))
.catch(e => console.log(e));
```- keccak implementation defaults to 512 and is not tested against all attack vectors.
***
# React Hooks
Following hooks are available:
```javaScript
export function useHash(
hmacAlgo?: string = "MD5",
initialMessage: ?string = "hello World",
): [
hashed: string,
setMessage: (message: string) => Promise,
setAlgo: (algo: string) => Promise
];
``````javaScript
export function useHmac(
hmacAlgo?: string = "HmacMD5",
initialMessage: ?string = "hello World",
initialSecret: ?string = "SecretKey"
): [
hashed: string,
setMessage: (message: string) => Promise,
setAlgo: (algo: string) => Promise,
setSecret: (secret: string) => Promise
];
```
## Usage```javaScript
const [hashedMessage, setHashAlgo, setHashMessage] = useHash();
const [hmac, setHmacAlgo, setHmacMessage, setHmacSecret] = useHmac();
````hashedMessage` and `hmac` will update after a call to one of the setters is resolved.
note that all the setter functions of these two hooks are async and will return a `promise`.
---
#### CreditsSome modules of this package use Open Source code snippets. You can find the source code of their open source projects along with license information below. We acknowledge and are grateful to these developers for their contributions to open source.
- Project: crypto-es https://github.com/entronad/crypto-es
- License (MIT) https://github.com/entronad/crypto-es/blob/master/LICENSE
---