为什么没有人用md5(UUID(), 16)来生成16位大小写不敏感的唯一取值?
最近我在考虑如何缩短UUID的长度,大部分人说用Base64等方法, 但是我很奇怪, UUID()是唯一的, md5()后的值也很难冲突, 为什么很少有人用呢? 我本人是UUID用习惯了, 最近才考虑到长度的问题, 所以数据库主键由UUID改为16个字符长度的md5(UUID(), 16)需要该不少地方, 像URL重写, 正则匹配等, 但是为啥没有人用呢? 是不是有什么缺陷?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
可以的 . 理论上没有问题 . 其实 uuid 也是根据 时间用 crypt() 函数生成的.
你要知道 md5 也是他的一种
md5不等于唯一啊
你可以用时间戳精确到微秒在MD5,不放心的话在加salt在MD5,在不放心就在rand再MD5咯。