您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“nodejs怎么加密”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“nodejs怎么加密”這篇文章吧。
nodejs加密的方法:1、導入crypto模塊;2、設置加密類型和要使用的加密密鑰;3、將編碼方式從utf-8轉為hex;4、返回加密后的字符串即可。
本文操作環境:windows7系統、nodejs10.16.2版,DELL G3電腦。
nodejs 如何加密?
nodejs常用加密方式:
/** * @加密模塊 * @md5可以被彩虹吧破解,這里就不用啦 * @author lwt * */ //導入模塊 var crypto = require('crypto'); /** * @aes192加密模塊 * @param str string 要加密的字符串 * @param secret string 要使用的加密密鑰(要記住,不然就解不了密啦) * @retrun string 加密后的字符串 * */ exports.getEncAse192 = function(str, secret) { var cipher = crypto.createCipher("aes192", secret); //設置加密類型 和 要使用的加密密鑰 var enc = cipher.update(str, "utf8", "hex"); //編碼方式從utf-8轉為hex; enc += cipher.final("hex"); //編碼方式從轉為hex; return enc; //返回加密后的字符串 } /** * @aes192解密模塊 * @param str string 要解密的字符串 * @param secret string 要使用的解密密鑰(要和密碼的加密密鑰對應,不然就解不了密啦) * @retrun string 解密后的字符串 * */ exports.getDecAse192 = function(str, secret) { var decipher = crypto.createDecipher("aes192", secret); var dec = decipher.update(str, "hex", "utf8");//編碼方式從hex轉為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; }
加密是以某種算法改變原有的信息數據,使得未授權用戶即使獲得了已加密信息,因不知解密的方法,無法得知信息真正的含義,通過這種方式提高網絡數據傳輸的安全性,加密算法常見的有哈希算法、HMAC 算法、簽名、對稱性加密算法和非對稱性加密算法,加密算法也分為可逆和不可逆,比如 md5 就是不可逆加密,只能暴力破解(撞庫),我們在 NodeJS 開發中就是直接使用這些加密算法,crypto 模塊提供了加密功能,包含對 OpenSSL 的哈希、HMAC、加密、解密、簽名以及驗證功能的一整套封裝,核心模塊,使用時不需安裝。
以上是“nodejs怎么加密”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。