您好,欢迎来到图艺博知识网。
搜索
您的当前位置:首页关于密码的简单加密方法

关于密码的简单加密方法

来源:图艺博知识网
一般用户密码服务器上也是加密的,是不可能明文看得到。如果网页中要记住防止用户再登录该网站免输入账号和密码,可以通过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;
}

二、如何使用

Copyright © 2019- huatuoyibo.net 版权所有 湘ICP备2023021910号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务