Android与thinkphp通过"http"的RSA AES加密实现

浏览:4501 发布日期:2015/08/21 分类:技术分享 关键字: RSA AES 加密 通信
加密方案有:RSA、AES。(主要理解这三点: 用RSA保护AES密钥,用AES密钥保护所传数据。每次用Token令牌验证请求安全,下面会介绍。)

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 次 )

最佳答案
评论( 相关
后面还有条评论,点击查看>>