-
-
Save siwalikm/8311cf0a287b98ef67c73c1b03b47154 to your computer and use it in GitHub Desktop.
'use strict'; | |
const crypto = require('crypto'); | |
const ENC_KEY = "bf3c199c2470cb477d907b1e0917c17b"; // set random encryption key | |
const IV = "5183666c72eec9e4"; // set random initialisation 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 |
@Anyitechs What I said was if you have an 8-byte IV, then the data can't be encrypted with AES-256-CBC.
Saying you want to "increase the byte size" of an existing piece of data doesn't make any sense. It's 8 bytes of data. If you want 16 bytes, you need 8 more bytes of data.
@NReilingh Yea, I'm not saying I want to encrypt the data with AES-256-CBC. I only commented here because I need help.
And yea I have 8 bytes of data, but I want 16 bytes, I need more 8 bytes of data. Do you have any idea on how I can go about that please?
@NReilingh Yea, I'm not saying I want to encrypt the data with AES-256-CBC. I only commented here because I need help.
🤦♂️
@Anyitechs Try StackOverflow.
Keep getting this error,
Error: Cannot find module 'crypto'
Any help on this please
Keep getting this error,
Error: Cannot find module 'crypto'
Any help on this please
You have to import/require crypto module. You don't need to install it because it's built-in in nodeJS.
If your problem hasn't solved, please try to update nodejs to latest version
Hey anyone help me on this issue please
Error: Trying to add data in unsupported state
at Decipheriv.update
hey! @siwalikm
can you help me with this following problem.
I am provided a key which is 64 byte long, and we are supposed to use aes-256-cbc algorithm for encryption.
How should we use it for encryption, since at max we can use 32 bytes long key.
So is there any standard way of dealing with such problem, since I am not the one who is going to decrypt the data or I need to talk with that person who is going to decrypt it and ask for how is he decreasing its key length.
Kindly help!
Much obliged, it helped for my current case.
FYI, if someone still has problem creating random keys, this is how you can do it:
const ENC_KEY = "bf3c199c2470cb477d907b1e0917c17b"; // # Generate: crypto.randomBytes(32).toString("hex").slice(0, 32);
const IV = "5183666c72eec9e4"; //Generate: crypto.randomBytes(16).toString("hex").slice(0, 16);
Danny Bullo
@NReilingh Correct! I understand all of that. I'm actually interacting with an external API and was sent an iv key on verification as credential to interact with the API, but I need to increase the byte size (as the current byte size is 8 bytes) to make subsequent requests to the server. So I need to increase the byte size of the iv key that has been sent to me already, and not generate a new iv key else I can't decrypt the data returned by the server.