-
-
Save U1F30C/49167f7ba6c7a9e7128798c751669882 to your computer and use it in GitHub Desktop.
AES-256-CBC implementation in nodeJS with built-in Crypto library
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 'use strict'; | |
| const crypto = require('crypto'); | |
| const ENC_KEY = "bf3c199c2470cb477d907b1e0917c17b"; // set random encryption key | |
| const IV = "5183666c72eec9e4"; // set random initialization vector | |
| // ENC_KEY and IV can be generated as crypto.randomBytes(32).toString('hex'); | |
| const phrase = "who let the dogs out"; | |
| var encrypt = ((val) => { | |
| let cipher = crypto.createCipheriv('aes-256-cbc', ENC_KEY, IV); | |
| let encrypted = cipher.update(val, 'utf8', 'base64'); | |
| encrypted += cipher.final('base64'); | |
| return encrypted; | |
| }); | |
| var decrypt = ((encrypted) => { | |
| let decipher = crypto.createDecipheriv('aes-256-cbc', ENC_KEY, IV); | |
| let decrypted = decipher.update(encrypted, 'base64', 'utf8'); | |
| return (decrypted + decipher.final('utf8')); | |
| }); | |
| encrypted_key = encrypt(phrase); | |
| original_phrase = decrypt(encrypted_key); | |
| // star this gist if you found it useful |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment