text-crypto v1.0.0
Text Crypto 
A Node.js module to encrypt and decrypt text.
Features
- Simple API - there are only two functions (encrypt and decrypt).
- Multiple calls to encrypt with the same key and plaintext will produce a different ciphertext.
- The string produced by
encryptwill always contain a HMAC and a initialization vector. - Cipher algorithm:
AES256 - HMAC message digest algorithm:
SHA256
Install
$ npm install text-cryptoExample
const TextCrypto = require('text-crypto')
const key = 'a long random key'
const plaintext = 'a plain text message'
const ciphertext = TextCrypto.encrypt(key, plaintext)
const decryptedText = TextCrypto.decrypt(key, ciphertext)
console.log(ciphertext)
console.log(decryptedText) // 'a plain text message'
console.log(plaintext === decryptedText) // trueAPI
TextCrypto.encrypt(key, plaintext)
Returns a string - the ciphertext of the plaintext.
Invoking encrypt with the same key and plaintext will produce a different ciphertext each time.
key must contain sixteen or more characters, otherwise an error is thrown.
An error is thrown if either argument key or plaintext is not a string.
TextCrypto.decrypt(key, ciphertext)
Returns the decrypted plaintext of the ciphertext.
key must contain sixteen or more characters, otherwise an error is thrown.
An error is thrown if either argument key or plaintext is not a string.
Wrapping decrypt in a try catch block is advised. If the key is incorrect or the ciphertext has been modified in any way then decrypt will throw an ERR_INVALID_HMAC error.
const key = 'a long random key'
const plaintext = 'a plain text message'
const ciphertext = TextCrypto.encrypt(key, plaintext)
let decryptedText
try {
decryptedText = TextCrypto.decrypt(key, ciphertext + 'a modification')
} catch (err) {
console.log(err) // { code: 'ERR_INVALID_HMAC', message: 'invalid HMAC' }
}Tests
Run the unit tests.
$ npm testLicense
MIT. Copyright (c) Shane Bloomer.
7 years ago