ホームページ  >  に質問  >  本文

javascript - js用什么方法对ajax的post的数据进行加密传输php进行解密

由于不想在做ajax post的时候进行明文传输,想进行js对一个js对象进行加密成字符串或者二进制字符串传输,但是不知道用什么方式加密,并且这种加密后的字符串需要在php端进行解密,解密后最好是一个php的数组,请问大家有这个种需求吗?知道这个怎么实现吗?

ringa_leeringa_lee2772日前437

全員に返信(2)返信します

  • 伊谢尔伦

    伊谢尔伦2017-04-11 13:01:11

    你可以使用非对称加密算法,在浏览器中用公钥加密,在服务器端用私钥解密。jsencrypt项目支持RSA加密,你只需用openssl生成密钥对,然后把公钥放到页面里就行。PHP可以用openssl系列函数解密。

    加密和解密的数据都是字符串,你如果想得到数组,可以在JS这边创建一个对象,然后调一下JSON.stringify再加密。PHP解出来是个JSON字符串,用json_decode函数解开就能得到数组。

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-11 13:01:11

    首先,crypto-js可以解决你的问题。选一个对称加密算法(例如AES-256-CBC),在PHP端用AES+密码加密,在js端用AES+密码解密 —— 但是这么做意义并不大因为你的密码都已经在js代码中明文表示了。

    所以如果你的目的是为了不明文传输,建议你从传输层就做好非对称加密,最简单的办法就是把服务器的协议由HTTP换成HTTPs。

    返事
    0
  • キャンセル返事