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

WBOY
发布: 2016-09-26 08:40:11
原创
1283 人浏览过

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

回复内容:

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

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

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

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

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

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板