同一个用户唯一码生成,类似微信的 openid 和unionid

现在有个需求,想生成唯一码
比如用户id123456, 商户key: B123456789
生成唯一码:

  1. 根据用户ID 和商户key 生成,最后可以解密得到对应idkey

    • 好处是不用存储用户与商户关系,缺点是长度不固定
  2. 根据用户ID 和商户key 生成一个固定长度的值,并把3个值存到数据库,

    • 坏处是需要一个多余的表,好处是:长度固定,看着舒服

请问应该怎么弄呢?
还有就是 加密解密算法?有参考的吗? 长度尽量不超过50 位吧!

结论:
使用 hashids 扩展库

有兴趣的可以看下官网

世界上最遥远的距离不是生与死,而是你亲手制造的BUG就在你眼前,你却怎么都找不到ta。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5
panda-sir

第一种 总感觉一股违和感 你有用户的id和商户的key还要 找个secret再加密....

我建议你直接用第二中吧 用户商户的关联字段肯定是要存的 不然你之后想用数据库直接关联查询的时候 你还没办法查询

3年前 评论
kis龍 (楼主) 3年前

id生成?hashids.org/php/ 试试?

3年前 评论
kis龍 (楼主) 3年前

jwt

3年前 评论
kis龍 (楼主) 3年前

vinkla/hashids 可以试一下

3年前 评论
kis龍 (楼主) 3年前
Laravel Hashids
https://github.com/vinkla/laravel-hashids
3年前 评论
kis龍 (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!