1、客户端“首次”请求php服务器端时,先用RSA公钥加密一个随机生成的AES_KEY传递到服务器端。
请求格式:http://www.***.com/Api/Index.php?rsakey=******&data=*******
@param rsakey 每次都随机生成。
@param data 传递附加数据并用随机密钥加密。
2、php服务器端接收到rsakey后,用RSA私钥解密它,得到密钥后用得到的AES密钥解密传过来的数据。
3、完成以上步骤后,php服务器端然后生成一个UID和Token令牌(用RSA私钥加密过的),回传给客户端。
4、Android客户端接收到后保存到客户端本地,以后每次请求都带上这个Token值。
这样一来,就避免每次调取数据都要传用户名和密码了,当然重要操作你还可以加一些SESSION验证之类的。
还有,如果发现Token被人利用,可以随时在服务端数据库中设置失效时间,这样在请求时客户端会自动跳到登录页重新执行上面的操作,生成一个新的Token。
android客户端代码、php代码,请从附件下载。
以上只是简单的实现,当然走https业界通用做法更好,不对的地方欢迎指出谢谢。
加密 解密.rar
( 13.31 KB 下载:541 次 )
最佳答案