登录
首页 >  Golang >  Go问答

使用redis存储登录的用户,token怎么生成有简单有不可破解

来源:SegmentFault

时间:2023-02-16 15:27:21 431浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《使用redis存储登录的用户,token怎么生成有简单有不可破解》,涉及到Java、Web、go、session、后端,有需要的可以收藏一下

问题内容

想法是:前端的token就是后端redis的key,redis的value就是基本用户信息。只要查询到了就代表用户已经登录,这个key怎么设计比较好?

  1. 不能直接用用户的id,因为这样可以轻松伪造登录
  2. 起始这个key只要能够保证唯一性就可以,因为他本身不保存信息

我想的最简单的方法:用户id+几个随机数,这样能够保证安全性吗?

正确答案

最好是无规律的。

你说的

用户ID + 几个随机数
确实可以,但还不保险,最好再哈希一次。

比如再做一次 HMAC-SHA256 哈希,密钥对前端不可见。

P.S. SHA256 的理论哈希冲突性已经很低了,绝大部分场景下完全可以满足唯一性的需求,你也没那么大用户量不是?还嫌不够可以 SHA384、SHA512、甚至 RSA 这种非对称的。

今天关于《使用redis存储登录的用户,token怎么生成有简单有不可破解》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>