1234567891011121314151617181920212223242526272829303132333435 |
- import crypto from 'crypto';
- export const encrypt = (buffer, key, algorithm = 'aes-256-cbc') => {
- const iv = crypto.randomBytes(16);
- let cipher = crypto.createCipheriv(algorithm, Buffer.from(key, 'base64'), iv);
- let encrypted = cipher.update(buffer);
- encrypted = Buffer.concat([encrypted, cipher.final()]);
- return {
- iv: iv.toString('base64'),
- encryptedData: encrypted.toString('base64'),
- };
- };
- export const decrypt = (data, key, algorithm = 'aes-256-cbc') => {
- let iv = Buffer.from(data.iv, 'base64');
- let encryptedText = Buffer.from(data.encryptedData, 'base64');
- let decipher = crypto.createDecipheriv(
- algorithm,
- Buffer.from(key, 'base64'),
- iv
- );
- let decrypted = decipher.update(encryptedText);
- decrypted = Buffer.concat([decrypted, decipher.final()]);
- return decrypted.toString();
- };
- export const generateKey = () =>
- Buffer.from(crypto.randomBytes(32)).toString('base64');
- /* test
- const algo = 'aes-256-cbc';
- const key = Buffer.from(crypto.randomBytes(32)).toString('base64');
- const result = encrypt(Buffer.from('toto'), key, algo);
- const decrypted = decrypt(result, key, algo);
- */
|