@4us-dev/crypto
Version:
Utility classes to assist developers during software development
160 lines (118 loc) • 4.18 kB
Markdown
# 4us-dev crypto
[](https://sonarcloud.io/dashboard?id=4us-dev_crypto)
[](https://sonarcloud.io/dashboard?id=4us-dev_crypto)
[](https://sonarcloud.io/dashboard?id=4us-dev_crypto)
[](https://sonarcloud.io/dashboard?id=4us-dev_crypto)
[](https://sonarcloud.io/dashboard?id=4us-dev_crypto)
[](https://sonarcloud.io/dashboard?id=4us-dev_crypto)

[](https://www.npmjs.com/package/@4us-dev/crypto)
[](/issues)
[](https://david-dm.org/4us-dev/crypto)
[](https://david-dm.org/4us-dev/crypto?type=dev)
[](https://www.npmjs.com/package/@4us-dev/crypto)

[](/LICENSE)
Install with [npm](https://www.npmjs.com/)
```sh
npm i @4us-dev/crypto
```
### Introduction
`@4us-dev/crypto` is a lib to help developers with encryption and encoding.
## Usage
- [Base64](#base64)
- [encode](#encode)
- [decode](#decode)
- [Base64Url](#base64url)
- [encode](#encode)
- [decode](#decode)
- [sha256](#sha256)
- [Defining output encode](#defining-output-encode)
- [sha256Async](#sha256Async)
- [PKCE](#pkce)
- [codeVerifierGenerator](#codeverifiergenerator)
- [codeChallengeGenerator](#codechallengegenerator)
### Base64
```js
import { base64 } from '@4us-dev/crypto';
```
#### encode
```js
base64.encode('teste+encode+');
// output
// dGVzdGUrZW5jb2RlKw==
```
#### decode
```js
base64.decode('dGVzdGUrZW5jb2RlKw==');
// output
// teste+encode+
```
### Base64Url
```js
import { base64Url } from '@4us-dev/crypto';
```
#### encode
```js
base64Url.encode('teste+encode+');
// output
// dGVzdGUrZW5jb2RlKw
```
#### decode
```js
base64Url.decode('dGVzdGUrZW5jb2RlKw');
// output
// teste+encode+
```
### sha256
```js
import { sha256 } from '@4us-dev/crypto';
```
default encoding is `hex`
```js
sha256('4us dev');
// output
// 9c8813f0ca966480ebd17668f7850c85930e9a5e2425a71d9b1125c9026edf3d
```
#### defining output encode
```js
sha256('4us dev', 'base64');
// output
// nIgT8MqWZIDr0XZo94UMhZMOml4kJacdmxElyQJu3z0=
```
### sha256Async
```js
import { sha256Async } from '@4us-dev/crypto';
```
```js
const output = await sha256Async('4us dev');
// or
sha256Async('4us dev').then((output) => console.log(output));
// output
// 9c8813f0ca966480ebd17668f7850c85930e9a5e2425a71d9b1125c9026edf3d
```
### PKCE
Generate `code verifier` and `code challenge` for OAuth with PKCE.
```js
import { pkce } from '@4us-dev/crypto';
```
#### codeVerifierGenerator
```js
const codeVerifier = pkce.codeVerifierGenerator();
// output example
// FVMq~J2BfdXm2cEOEtlKQTGNRjYQ8VYA6OETFrW3A915~8dbktXkSwtVbZnUUStkApwZjcIWCYV.OiITpYNXpuWGBEM1.oFxT7ZizzoQ0OE81ZAOIU1JCwXMxmCQtyL2
```
#### codeChallengeGenerator
```js
// this works only with nodejs
const output = pkce.codeChallengeGenerator(codeVerifier);
// output example
// Ae8fgMraIhwQDPladfacB-s6Oh4Hzs34SXLQmiyci98
```
#### codeChallengeGeneratorAsync
```js
// this works with browser and node
const output = await pkce.codeChallengeGeneratorAsync(codeVerifier);
// output example
// Ae8fgMraIhwQDPladfacB-s6Oh4Hzs34SXLQmiyci98
```