服务端与客户端加密解密思路
- 我的参考
- 我的理解
我的参考
我的理解
- AES
- 对称加密,即加密解密使用共同的key
- AES是DES的升级版
- RSA
- 非对称加密,即加密解密使用一对不同的key,分为公钥和秘钥
- 公钥加密,私钥解密;私钥加密,公钥解密
之前在公司遇到UC中心的token信息,而token信息里面带有用户数据,而我这边PHP要做解密,要做解密必须了解加密方式
注:我们公司主要是通过token实现单点登录,各自应用根据token判断用户是否已经登录
token的生成规则
-
加密方式
(明文+AES) 连接符 (AES+RSA)
-
解密方式
- 切割连接符,得到
(明文+AES) (AES+RSA)
(AES+RSA)
,使用公钥或者私钥,解密RSA,得到AES秘钥(明文+AES)
,通过上一步得到的AES秘钥解密,得到明文
- 切割连接符,得到
上述,只有RSA是固定不变的,但是AES是可变,根据不同的客户端使用不同的AES,这样可以做到只有拥有自己的AES才能解密明文
这是一种加密思路,客户端只能唯一性加密解密,主要应用场景在于服务端与客户端(app)的通信
###总结:
最后个人理解,目前基本都采用OAUTH2授权方式,采用https+token, 虽然需要通过二次请求,但是可以解决后续所有的请求
基本来说,也没有必要把明文信息放入token里面,像这种可逆转得到明文信息的方式,基本来说性能是一个问题,加密解密计算耗时,但对于走http协议来说,不失为一个好办法
@author 詹巨章 zhanjuzhang@gmail.com
@date 2015-7-20 10:23:47