Node.js library for simple implementation of encryption, decryption and digital signatures based on the Node.js crypto module
- Encryption & Decryption (RSA, AES-256).
- Generate signature & verify (RSA)
npm i @ryanbekhen/cryptkhen
First of all, initialize:
import { AES256Encryption, RSAEncryption } from '@ryanbekhen/cryptkhen';
const aes256 = new AES256Encryption('secret');
const rsa = new RSAEncryption();
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.
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.
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.
When generating a public key and a private key, the function defaults to using bits of size 2048 without a passphrase.
const pem = await rsa.generateKey();
Text encryption will produce encrypted text in base64 form.
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.
const decryptedText = rsa.decrypt(pem.privateKey, encryptedText);
Create digital signatures based on verifiable data.
const signature = rsa.signature(pem.privateKey, 'data');
Verify signature authenticity.
const verify = rsa.isVerified(pem.publicKey, signature, 'data');
Questions, comments, bug reports, and pull requests are all welcome.
This software is licensed under the Apache 2 license.