数据库中uid为什么要加密?

今天看其他项目的数据库,看到uid是加密过的

保持会话的方式是jwt

有人知道为什么嘛?

阅读 4.3k
3 个回答

不是加密了的 那是hash, UID不一定是数字自增的
一般来说分布式的系统 用这样的hash uid比较多
好处就是在高访问量,高并发下 uid不会重复.

你说的是mysql里的内置函数uuid吗?
mysql 中可以有二类用于生成唯一值性质的工具:UUID()函数和自增序列
他们都可以实现生成唯一值的功能;
uuid 是可以生成时间、空间上都独一无二的值;自增序列只能生成基于表内的唯一值,且需要搭配使其为唯一的主键或唯一索引;
实现方式不一样,uuid 是随机+规则组合而成的,而自增序列是控制一个值逐步增长的;
uuid 产生的是字符串类型值,固定长度为:36个字符,而自增序列产生的是整数类型值,长度由字段定义属性决定;
所以这里你说的uid加密可能是用的内置函数uuid生成的,这么做是为了避免在高并发的情况下,有重复的可能。

加密或者不加密都可以吧。

不加密的好处是 uid 加索引外键什么的速度快。

加密的好处是无法通过 uid 去推其他的 uid (比如简单的uid递增方式)

这和JWT无关的, JWT只是对UID或者其他能够标明用户身份的字段进行加密再返回而已,通过url发送过来的uid或者其他字段验证是否正确和超时

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题