@63pokupki/nodejs-common
Version:
Common nodejs functionality
44 lines • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mDecrypt = exports.mEncrypt = exports.CryptAlgT = void 0;
const crypto_1 = require("crypto");
var CryptAlgT;
(function (CryptAlgT) {
CryptAlgT["RC4"] = "rc4";
CryptAlgT["AES256CTR"] = "aes-256-ctr";
CryptAlgT["AES256CBC"] = "aes-256-cbc";
})(CryptAlgT = exports.CryptAlgT || (exports.CryptAlgT = {}));
/**
* Шифрование данных
* @param alg - Алгоритм шифровани
* @param key - ключ 48 символов
* @param data - данные для шифрования
* @returns
*/
function mEncrypt(alg, key, data) {
if ((key === null || key === void 0 ? void 0 : key.length) != 48) {
console.log('mEncrypt.key - должен быть 48 символов');
}
const pass = key.substr(0, 32);
const iv = key.substr(32, 16);
const vCipher = (0, crypto_1.createCipheriv)(alg, pass, iv);
let sEncrypted = vCipher.update(data, 'utf8', 'hex');
sEncrypted += vCipher.final('hex');
return sEncrypted;
}
exports.mEncrypt = mEncrypt;
// Расшифровать данные
function mDecrypt(alg, key, sEncrypted) {
if ((key === null || key === void 0 ? void 0 : key.length) != 48) {
console.log('mDecrypt.key - должен быть 48 символов');
}
const pass = key.substr(0, 32);
const iv = key.substr(32, 16);
let sDecrypted = "";
var vDecipher = (0, crypto_1.createDecipheriv)(alg, pass, iv);
sDecrypted += vDecipher.update(sEncrypted, 'hex', 'utf8');
sDecrypted += vDecipher.final('utf8');
return sDecrypted;
}
exports.mDecrypt = mDecrypt;
//# sourceMappingURL=CryptoH.js.map