A simple and secure encryption and decryption service using AES-256-CTR and HMAC-SHA512.
Install the package via npm:
npm install @imirfanul/secure-encryption
Import the CryptoService
class in your TypeScript or JavaScript file:
import CryptoService from '@imirfanul/secure-encryption';
Ensure you have the following environment variables set:
CRYPTO_SERVICE_KEY
: Base64 encoded 32-byte encryption key.CRYPTO_SERVICE_MAC_KEY
: Base64 encoded 32-byte MAC key.
To encrypt plaintext:
const plainText = 'Hello, World!';
const encryptedText = CryptoService.encrypt(plainText);
console.log('Encrypted Text:', encryptedText);
To decrypt encrypted text:
const decryptedText = CryptoService.decrypt(encryptedText);
console.log('Decrypted Text:', decryptedText);
Here's a complete example:
import CryptoService from '@imirfanul/secure-encryption';
process.env.CRYPTO_SERVICE_KEY = 'your_base64_encoded_32_byte_encryption_key';
process.env.CRYPTO_SERVICE_MAC_KEY = 'your_base64_encoded_32_byte_mac_key';
const plainText = 'Hello, World!';
// Encrypt the plaintext
const encryptedText = CryptoService.encrypt(plainText);
console.log('Encrypted Text:', encryptedText);
// Decrypt the encrypted text
const decryptedText = CryptoService.decrypt(encryptedText);
console.log('Decrypted Text:', decryptedText);
Encrypts the given plaintext using the encryption key and MAC key.
- Parameters:
plaintext
(string): The text to be encrypted.
- Returns:
string
: The base64 encoded encrypted text.
Decrypts the given encrypted message using the encryption key and MAC key.
- Parameters:
message
(string): The base64 encoded encrypted text.
- Returns:
string
: The decrypted plaintext.
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please open an issue or submit a pull request for any changes.
Inspired by various encryption tutorials and documentation.