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

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

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

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

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

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

结论:
使用 hashids 扩展库

有兴趣的可以看下官网

世界上最遥远的距离不是生与死,而是你亲手制造的BUG就在你眼前,你却怎么都找不到ta。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 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年前

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