从session到token

这几天在搞小程序涉及到登陆。

然后想起了很早以前自己看的一篇文章。

 

《干掉状态:从session到token》
链接:http://weixin.niurenqushi.com/article/2017-03-20/4794863.html

 

该文提出了以下几点观点:
1、session是有状态的,每次登陆时候给客户端返回一个随机码,客户端每次请求带上这个随机码来标识自己的身份。
2、服务器需要保存所有下发给客户端的随机码,假设有1亿个用户,也要保存1亿个session,当然,可能有的不是活跃的用户,可以考虑让token过期,但是总之问题的复杂度出在该token的存储上。比如:可能假设不用redis/memcache之类的缓存服务器,很可能造成机器不好扩展。但是用了redis/memcahce之类的软件,又很可能造成单点问题。。。各种考虑集群。
3、问题复杂度出存储全部用户的token上。实际情况下,我们可以考虑不存储这个token,怎么做到呢?很简单,就是用对称加密算法就行了,比如AES之类。这样就不用存储了。

 

附带:session 算法:
md5(base64(aes_256(uid+生成时间,秘钥)))
为什么要Base64,因为aes生成的字符有的是非明文字符。。。而且aes生成的字符串长度不是固定的。不利于客户端保存传输。
为什么要md5?加大不可逆的风险,其实没啥必要,只要aes就Ok了,因为aes破解也很具有难度的。

 

怎么搞个token算法?
简单的把md5去掉,变成base64(aes_256(uid+生成时间,秘钥))即可~~

 

转载于:https://www.cnblogs.com/ccXgc/p/9084517.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值