Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ryanbekhen/cryptkhen
Node.js library for simple implementation of encryption, decryption and digital signatures
https://github.com/ryanbekhen/cryptkhen
aes-256 encrypted-data encryption-decryption javascript nodejs passphrase rsa rsa-key-encryption rsa-key-pair security-signature typescript
Last synced: 20 days ago
JSON representation
Node.js library for simple implementation of encryption, decryption and digital signatures
- Host: GitHub
- URL: https://github.com/ryanbekhen/cryptkhen
- Owner: ryanbekhen
- License: apache-2.0
- Created: 2019-08-27T21:04:49.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-12-11T18:08:39.000Z (28 days ago)
- Last Synced: 2024-12-15T04:15:09.382Z (24 days ago)
- Topics: aes-256, encrypted-data, encryption-decryption, javascript, nodejs, passphrase, rsa, rsa-key-encryption, rsa-key-pair, security-signature, typescript
- Language: TypeScript
- Homepage:
- Size: 707 KB
- Stars: 19
- Watchers: 1
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# CRYPTKHEN
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![npm version](https://badge.fury.io/js/@ryanbekhen%2Fcryptkhen.svg)](https://badge.fury.io/js/@ryanbekhen%2Fcryptkhen)
[![Rate on Openbase](https://badges.openbase.com/js/rating/@ryanbekhen/cryptkhen.svg)](https://openbase.com/js/@ryanbekhen/cryptkhen?utm_source=embedded&utm_medium=badge&utm_campaign=rate-badge)Node.js library for simple implementation of encryption, decryption and digital signatures based on the Node.js [crypto module](https://nodejs.org/api/crypto.html)
## Features
- Encryption & Decryption (RSA, AES-256).
- Generate signature & verify (RSA)## Install
```bash
npm i @ryanbekhen/cryptkhen
```## Quick start
First of all, initialize:
```typescript
import { AES256Encryption, RSAEncryption } from '@ryanbekhen/cryptkhen';
const aes256 = new AES256Encryption('secret');
const rsa = new RSAEncryption();
```### AES-256
Before encrypting data of type string, the data is first converted into a buffer. The encrypted data will be in the form of a buffer and converted to base64.
```typescript
const data = Buffer.from('data');
const encryptedText = aes256.encrypt(data).toString('base64');
```When decrypting encrypted text, the encrypted text will be converted into a buffer first. The decrypted data will be buffered and converted to a string.
```typescript
const decryptedText = aes256.decrypt(Buffer.from(encryptedText, 'base64')).toString();
```If you are encrypting a file that will produce an encrypted file, there is no need to change the encryption result to base64 because the encryption result in the form of a buffer will be written into a new file, for example it will be written in the `data.enc` file.
### RSA
When generating a public key and a private key, the function defaults to using bits of size 2048 without a passphrase.
```typescript
const pem = await rsa.generateKey();
```Text encryption will produce encrypted text in base64 form.
```typescript
const encryptedText = rsa.encrypt(pem.publicKey, 'data');
```When decrypting encrypted text, a passphrase is required if at the time of generating the RSA key the passphrase is used.
```typescript
const decryptedText = rsa.decrypt(pem.privateKey, encryptedText);
```Create digital signatures based on verifiable data.
```typescript
const signature = rsa.signature(pem.privateKey, 'data');
```Verify signature authenticity.
```typescript
const verify = rsa.isVerified(pem.publicKey, signature, 'data');
```## Contributing
Questions, comments, bug reports, and pull requests are all welcome.
## License
This software is licensed under the [Apache 2 license](./LICENSE).