Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iamnapo/enigma
🙊 Create secure ciphers easily.
https://github.com/iamnapo/enigma
aes aes-256-gcm cipher decrypt encrypt enigma
Last synced: 2 days ago
JSON representation
🙊 Create secure ciphers easily.
- Host: GitHub
- URL: https://github.com/iamnapo/enigma
- Owner: iamnapo
- License: mit
- Created: 2022-11-30T11:39:19.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-07T21:57:38.000Z (over 1 year ago)
- Last Synced: 2024-12-25T17:33:18.806Z (8 days ago)
- Topics: aes, aes-256-gcm, cipher, decrypt, encrypt, enigma
- Language: TypeScript
- Homepage: https://npm.im/@iamnapo/enigma
- Size: 12.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @iamnapo/enigma
> Create secure ciphers easily
[![build](https://badges.iamnapo.me/ci/iamnapo/enigma)](https://github.com/iamnapo/enigma/actions) [![npm](https://badges.iamnapo.me/npm/@iamnapo/enigma)](https://www.npmjs.com/package/@iamnapo/enigma)
## Install
```sh
npm i @iamnapo/enigma
```## Usage
```js
import { encrypt, decrypt, generateEncryptionKey } from "@iamnapo/enigma";encrypt("some secret", { encryptionKey: "some-key" }); // => 91ysVc3IbexEwRigsMHTvwRwcuG5rMMWhJ6IkF3iq84=
decrypt("91ysVc3IbexEwRigsMHTvwRwcuG5rMMWhJ6IkF3iq84=", { encryptionKey: "some-key" }); // => "some secret
encrypt("some secret", { encryptionKey: "some-key", encoding: "hex" }); // => 93fd2e92833e{...}82253f9aa4f008generateEncryptionKey(); // => f4Gy8jKRT4cM5+5XzL5ZtS5GHjgCmYw5BmHy4P4EJj4=
```## API
### encrypt(input, options)
Encrypt text using the [aes-256-gcm](https://en.wikipedia.org/wiki/Galois/Counter_Mode) encryption algorithm.
> Note: A random Initialization Vector and a random salt are created and encoded inside the cipher, so each time the result is different.
### decrypt(input, options)
Decrypt text that was encrypted with [`encrypt`](#encryptinput-options).
#### input
Type: `string`
Input text.
#### options
Type: `object`
##### encryptionKey
Type: `string | Buffer | TypedArray | DataView`
Encryption key to use for encryption/decryption.
##### encoding
Type: `"utf16le" | "ucs2" | "ucs-2" | "base64" | "base64url" | "latin1" | "binary" | "hex"`\
Default: `"base64"`Encoding to use for encryption/decryption.
### generateEncryptionKey(length)
Utility function to generate a random encryption key using a cryptographically secure random number generator.
#### length
Type: `number`\
Default: `32`Length of the generated encryption key in bytes.