前后端交互接口加密

    如对你有帮助,请我喝杯咖啡吧! 打赏

因为前端对用户是暴露的

这个时候可以考虑非对称加密,比如RSA,支付宝内有公钥,私钥生成工具

示例:
//js公钥加密
function encrypt(data)
{
    //需要引入插件jsencrypt.js 下载地址http://download.csdn.net/detail/codercwm/9770398
    var RSA_PUBLIC_KEY = '';//公钥写在这里
    var obj = new JSEncrypt();
    obj.setPublicKey(RSA_PUBLIC_KEY);
    var data = obj.encrypt(data);
    return data;
}

//php解密函数
function decrypt($data) {
    $data = base64_decode($data);
 
    //读取私钥
    $key_private = file_get_contents('./rsa_private_key.pem', 'r');
 
    //进行解密
    if(!openssl_private_decrypt($data, $data, openssl_pkey_get_private($key_private))) {
        return false;
    }
    return $data;
}

另外还有几个好用的原则:
1.前端使用https请求后端接口
2.服务端判断请求来源域名是否合法
3.如果有跨域问题,前端可把HTML页面放入服务端项目中,JS单独文件,解决跨域