溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

nodejs怎么加密

發(fā)布時(shí)間:2021-09-03 15:09:50 來源:億速云 閱讀:124 作者:小新 欄目:web開發(fā)

這篇文章主要為大家展示了“nodejs怎么加密”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“nodejs怎么加密”這篇文章吧。

nodejs加密的方法:1、導(dǎo)入crypto模塊;2、設(shè)置加密類型和要使用的加密密鑰;3、將編碼方式從utf-8轉(zhuǎn)為hex;4、返回加密后的字符串即可。

本文操作環(huán)境:windows7系統(tǒng)、nodejs10.16.2版,DELL G3電腦。

nodejs 如何加密?

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 要使用的解密密鑰(要和密碼的加密密鑰對(duì)應(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加密模塊 (每次加密隨機(jī),不可逆)
 * @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;
}

加密是以某種算法改變?cè)械男畔?shù)據(jù),使得未授權(quán)用戶即使獲得了已加密信息,因不知解密的方法,無法得知信息真正的含義,通過這種方式提高網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)陌踩裕用芩惴ǔR姷挠泄K惴āMAC 算法、簽名、對(duì)稱性加密算法和非對(duì)稱性加密算法,加密算法也分為可逆和不可逆,比如 md5 就是不可逆加密,只能暴力破解(撞庫),我們?cè)?NodeJS 開發(fā)中就是直接使用這些加密算法,crypto 模塊提供了加密功能,包含對(duì) OpenSSL 的哈希、HMAC、加密、解密、簽名以及驗(yàn)證功能的一整套封裝,核心模塊,使用時(shí)不需安裝。

以上是“nodejs怎么加密”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI