用crypto-js进行登录前加密,服务器端php解密

1、首先,要下载/crypto-js.js文件。网上很多链接是google提供的,国内连不上。建议在CSDN里找一个帖子下载。我在这里就不提供了。
2、在登录界面,包含crypto-js.js文件。比如,加入:
3、在登录界面,使用js函数:
function encrypt(input, key)

  return CryptoJS.TripleDES.encrypt(input,CryptoJS.enc.Utf8.parse(key), {
      mode: CryptoJS.mode.ECB,
      padding: CryptoJS.pad.Pkcs7
    });
}

变量 key可以是固定的数值,但建议使用Session,生成随机数,加强安全性

4、我的代码(js + php):

登录界面:

$desKeyStr = getRndNum(24);  //自己做的函数,生成24位随机码
$_SESSION["sessionDesKeyStr"]=$desKeyStr;  //用Sessiom保存key
?>
......

服务器端代码(php):

登录文件的代码中加入函数:

function DesDecrypt($data,$key)//解密
{
    $decData = mcrypt_decrypt('tripledes', $key, base64_decode($data), 'ecb');
    $decData=trim($decData); 
    $dec_s = strlen($decData);
    $padding = ord($decData[$dec_s-1]);
    $decData = substr($decData, 0, -$padding);
    return $decData;
}

//获得解密的用户名密码:
    $lgnstr=$_POST["lgnstr"];
    $temparr=explode("|",$lgnstr);
    $desKeyStr = $_SESSION["SessiondesKeyStr"];
    $username = DesDecrypt($temparr[0],$desKeyStr);
    $password = DesDecrypt($temparr[1],$desKeyStr);
?>
 

 

你可能感兴趣的:(用crypto-js进行登录前加密,服务器端php解密)