UNPKG

swiftly-tools

Version:

A complete tool to shorten code and speed up your coding, all in one

147 lines (140 loc) 3.33 kB
var crypto = require('crypto'); module.exports.crypto = { algoList() { return algo }, /** *@param secret *@param string Data you want to encrypt *@param algo By default is 'aes-256-cbc' *@return Encrypted string */ encrypt(secret = "df15g418fyt54e1f8er", string = "", algo = 'aes-256-cbc') { const key = crypto.scryptSync(secret, 'salt', 32); const iv = Buffer.alloc(16, 0); const cipher = crypto.createCipheriv(algo, key, iv); let encrypted = cipher.update(string, 'utf8', 'hex'); return encrypted += cipher.final('hex'); }, /** *@param secret secret you use to encrypt your data *@param string Data you want to decrypt *@param algo By default is 'aes-256-cbc' *@return Encrypted string */ decrypt(secret = "df15g418fyt54e1f8er", string = "", algo = 'aes-256-cbc') { const key = crypto.scryptSync(secret, 'salt', 32); const iv = Buffer.alloc(16, 0); const decipher = crypto.createDecipheriv(algo, key, iv); let decrypted = decipher.update(string, 'hex', 'utf8'); return decrypted += decipher.final('utf8'); } } const algo = ['CAST-cbc', 'aes-128-cbc', 'aes-128-cbc-hmac-sha1', 'aes-128-cfb', 'aes-128-cfb1', 'aes-128-cfb8', 'aes-128-ctr', 'aes-128-ecb', 'aes-128-gcm', 'aes-128-ofb', 'aes-128-xts', 'aes-192-cbc', 'aes-192-cfb', 'aes-192-cfb1', 'aes-192-cfb8', 'aes-192-ctr', 'aes-192-ecb', 'aes-192-gcm', 'aes-192-ofb', 'aes-256-cbc', 'aes-256-cbc-hmac-sha1', 'aes-256-cfb', 'aes-256-cfb1', 'aes-256-cfb8', 'aes-256-ctr', 'aes-256-ecb', 'aes-256-gcm', 'aes-256-ofb', 'aes-256-xts', 'aes128', 'aes192', 'aes256', 'bf', 'bf-cbc', 'bf-cfb', 'bf-ecb', 'bf-ofb', 'blowfish', 'camellia-128-cbc', 'camellia-128-cfb', 'camellia-128-cfb1', 'camellia-128-cfb8', 'camellia-128-ecb', 'camellia-128-ofb', 'camellia-192-cbc', 'camellia-192-cfb', 'camellia-192-cfb1', 'camellia-192-cfb8', 'camellia-192-ecb', 'camellia-192-ofb', 'camellia-256-cbc', 'camellia-256-cfb', 'camellia-256-cfb1', 'camellia-256-cfb8', 'camellia-256-ecb', 'camellia-256-ofb', 'camellia128', 'camellia192', 'camellia256', 'cast', 'cast-cbc', 'cast5-cbc', 'cast5-cfb', 'cast5-ecb', 'cast5-ofb', 'des', 'des-cbc', 'des-cfb', 'des-cfb1', 'des-cfb8', 'des-ecb', 'des-ede', 'des-ede-cbc', 'des-ede-cfb', 'des-ede-ofb', 'des-ede3', 'des-ede3-cbc', 'des-ede3-cfb', 'des-ede3-cfb1', 'des-ede3-cfb8', 'des-ede3-ofb', 'des-ofb', 'des3', 'desx', 'desx-cbc', 'id-aes128-GCM', 'id-aes192-GCM', 'id-aes256-GCM', 'idea', 'idea-cbc', 'idea-cfb', 'idea-ecb', 'idea-ofb', 'rc2', 'rc2-40-cbc', 'rc2-64-cbc', 'rc2-cbc', 'rc2-cfb', 'rc2-ecb', 'rc2-ofb', 'rc4', 'rc4-40', 'rc4-hmac-md5', 'seed', 'seed-cbc', 'seed-cfb', 'seed-ecb', 'seed-ofb']