您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“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è)資訊頻道!
免責(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)容。