一般使用者密碼伺服器上也是加密的,是不可能明文看得到。如果網頁中要記住防止使用者再登入該網站免輸入帳號和密碼,可以透過cookie,sessionStorage,localStorage來記錄。
場景:使用者成功登入一次後下次再登入免輸帳號和密碼!儲存在本地又不想明文顯示出來。只能加密保存(一般加密都是不可逆的)
一、一個簡單的加密和解密(如果程式碼完全暴露沒有安全性)
//加密 function encrypto( str, xor, hex ) { if ( typeof str !== 'string' || typeof xor !== 'number' || typeof hex !== 'number') { return; } let resultList = []; hex = hex <= 25 ? hex : hex % 25; for ( let i=0; i<str.length; i++ ) { // 提取字符串每个字符的ascll码 let charCode = str.charCodeAt(i); // 进行异或加密 charCode = (charCode * 1) ^ xor; // 异或加密后的字符转成 hex 位数的字符串 charCode = charCode.toString(hex); resultList.push(charCode); } let splitStr = String.fromCharCode(hex + 97); let resultStr = resultList.join( splitStr ); return resultStr; }
//解密 function decrypto( str, xor, hex ) { if ( typeof str !== 'string' || typeof xor !== 'number' || typeof hex !== 'number') { return; } let strCharList = []; let resultList = []; hex = hex <= 25 ? hex : hex % 25; // 解析出分割字符 let splitStr = String.fromCharCode(hex + 97); // 分割出加密字符串的加密后的每个字符 strCharList = str.split(splitStr); for ( let i=0; i<strCharList.length; i++ ) { // 将加密后的每个字符转成加密后的ascll码 let charCode = parseInt(strCharList[i], hex); // 异或解密出原字符的ascll码 charCode = (charCode * 1) ^ xor; let strChar = String.fromCharCode(charCode); resultList.push(strChar); } let resultStr = resultList.join(''); return resultStr; }
二、如何使用
以上是關於密碼的簡單加密方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!