项目作者: ryanbekhen

项目描述 :
The simple security signature module for encrypted data
高级语言: TypeScript
项目地址: git://github.com/ryanbekhen/cryptkhen.git
创建时间: 2019-08-27T21:04:49Z
项目社区:https://github.com/ryanbekhen/cryptkhen

开源协议:Apache License 2.0

下载


CRYPTKHEN

License
@ryanbekhen%2Fcryptkhen"">npm version
@ryanbekhen/cryptkhen?utm_source=embedded&utm_medium=badge&utm_campaign=rate-badge"">Rate on Openbase

Node.js library for simple implementation of encryption, decryption and digital signatures based on the Node.js crypto module

Features

  • Encryption & Decryption (RSA, AES-256).
  • Generate signature & verify (RSA)

Install

  1. npm i @ryanbekhen/cryptkhen

Quick start

First of all, initialize:

  1. import { AES256Encryption, RSAEncryption } from '@ryanbekhen/cryptkhen';
  2. const aes256 = new AES256Encryption('secret');
  3. 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.

  1. const data = Buffer.from('data');
  2. 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.

  1. 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.

  1. const pem = await rsa.generateKey();

Text encryption will produce encrypted text in base64 form.

  1. 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.

  1. const decryptedText = rsa.decrypt(pem.privateKey, encryptedText);

Create digital signatures based on verifiable data.

  1. const signature = rsa.signature(pem.privateKey, 'data');

Verify signature authenticity.

  1. 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.