nodejs常用加密方式
/**
* @加密模塊
* @md5可以被彩虹吧破解,這里就不用啦
* @author lwt
* */
//導(dǎo)入模塊
var crypto = require('crypto');
/**
* @aes192加密模塊
* @param str string 要加密的字符串
* @param secret string 要使用的加密密鑰(要記住,不然就解不了密啦)
* @retrun string 加密后的字符串
* */
exports.getEncAse192 = function(str, secret) {
var cipher = crypto.createCipher("aes192", secret); //設(shè)置加密類型 和 要使用的加密密鑰
var enc = cipher.update(str, "utf8", "hex"); //編碼方式從utf-8轉(zhuǎn)為hex;
enc += cipher.final("hex"); //編碼方式從轉(zhuǎn)為hex;
return enc; //返回加密后的字符串
}
/**
* @aes192解密模塊
* @param str string 要解密的字符串
* @param secret string 要使用的解密密鑰(要和密碼的加密密鑰對應(yīng),不然就解不了密啦)
* @retrun string 解密后的字符串
* */
exports.getDecAse192 = function(str, secret) {
var decipher = crypto.createDecipher("aes192", secret);
var dec = decipher.update(str, "hex", "utf8");//編碼方式從hex轉(zhuǎn)為utf-8;
dec += decipher.final("utf8");//編碼方式從utf-8;
return dec;
}
/**
* @Hmac-sha1加密模塊 (每次加密隨機,不可逆)
* @param str string 要加密的字符串
* @param secret string 要使用的加密密鑰
* @retrun string 加密后的字符串
* */
exports.getHmac = function(str, secret) {
var buf = crypto.randomBytes(16);
secret = buf.toString("hex");//密鑰加密;
var Signture = crypto.createHmac("sha1", secret);//定義加密方式
Signture.update(str);
var miwen=Signture.digest().toString("base64");//生成的密文后將再次作為明文再通過pbkdf2算法迭代加密;
return miwen;
}
/**
* @sha1加密模塊 (加密固定,不可逆)
* @param str string 要加密的字符串
* @retrun string 加密后的字符串
* */
exports.getSha1 = function(str) {
var sha1 = crypto.createHash("sha1");//定義加密方式:md5不可逆,此處的md5可以換成任意hash加密的方法名稱;
sha1.update(str);
var res = sha1.digest("hex"); //加密后的值d
return res;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。