前端js加密后台php解密,自定义加密方法

前端js加密后台php解密,自定义加密方法
应用场景

前端html输入用户名密码之后,使用http传到后台,post的内容全部是明文,用户名和密码通过抓包工具可以很容易获取到,所以需要在http传输之前对密码进行加密处理,php收到post内容之后进行解密,然后进行后续认证处理。

加密解密思路

逐个遍历输入的密码字符串,在每个字符前后分别插入一个随机的字符,静态的随机字符串通过大小写字母和数字打乱顺序所得。对于字符本身,如果存在于静态的字符串中,那么将字符按照静态字符串的顺序后移三位,如此获得最终加密的字符串。解密方式逆处理即可。

js加密代码

function encode(_str){
var staticchars = “PXhw7UT1B0a9kQDKZsjIASmOezxYG4CHo5Jyfg2b8FLpEvRr3WtVnlqMidu6cN”;
var encodechars = “”;
for(var i=0;i<_str.length;i++){
var num0 = staticchars.indexOf(_str[i]);
if(num0 == -1){
var code = _str[i];
}else{
var code = staticchars[(num0+3)%62];
}
var num1 = parseInt(Math.random()*62,10);
var num2 = parseInt(Math.random()*62,10);
encodechars += staticchars[num1]+code+staticchars[num2];
}
return encodechars;
}
function decode(_str){
var staticchars = “PXhw7UT1B0a9kQDKZsjIASmOezxYG4CHo5Jyfg2b8FLpEvRr3WtVnlqMidu6cN”;
var decodechars = “”;
for(var i=1;i<_str.length;){
var num0 = staticchars.indexOf(_str[i]);
if(num0 == -1){
var code = _str[i];
}else{
var code = staticchars[(num0+59)%62];
}
decodechars += code;
i = i+3;
}
return decodechars;
}
php解密代码

public function decode($str){
$staticchars = “PXhw7UT1B0a9kQDKZsjIASmOezxYG4CHo5Jyfg2b8FLpEvRr3WtVnlqMidu6cN”;
d e c o d e c h a r s = " " ; f o r ( decodechars = ""; for( decodechars="";for(i=1; i < s t r l e n ( i<strlen( i<strlen(str)😉{
n u m 0 = s t r p o s ( num0 = strpos( num0=strpos(staticchars, s t r [ str[ str[i]);
if($num0 !== false){
n u m 1 = ( num1 = ( num1=(num0+59)%62;
$code = s t a t i c c h a r s [ staticchars[ staticchars[num1];
}else{
$code = s t r [ str[ str[i];
}
$decodechars .= $code;
$i+=3;
}
return $decodechars;
}
原密码

admin!@#123

加密后的密码

(插入的字符是随机获取的,所以加密的密码每次都不一样)

aQfacYtzkU64fMYe!VV@AY#KdaDZF9oV0

特别说明
中文不行
上面这种加密方式只是进行了一种简单的伪装,通过分析JS代码是很容易破解的,要求不高可以使用。为了规避抓包分析导致密码泄露,可以使用https进行传输。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值