29 lines
779 B
JavaScript
29 lines
779 B
JavaScript
import crypto from 'crypto';
|
|
|
|
const algorithm = 'aes-256-ecb';
|
|
|
|
const key = crypto.scryptSync(process.env.SECRET_KEY, 'salt', 32);
|
|
|
|
export const generateIv = () => {
|
|
return crypto.randomBytes(16).toString('base64');
|
|
};
|
|
|
|
export const encrypt = (text) => {
|
|
const cipher = crypto.createCipheriv(algorithm, key, null);
|
|
let encrypted = cipher.update(text, 'utf8', 'hex');
|
|
encrypted += cipher.final('hex');
|
|
return encrypted;
|
|
};
|
|
|
|
export const decrypt = (text) => {
|
|
try {
|
|
const decipher = crypto.createDecipheriv(algorithm, key, null);
|
|
let decrypted = decipher.update(text, 'hex', 'utf8');
|
|
decrypted += decipher.final('utf8');
|
|
return decrypted;
|
|
} catch (error) {
|
|
console.log(error);
|
|
return null;
|
|
}
|
|
};
|