如何根据几个字段生成令牌

How to generate token based on few fields

我需要为用户生成一个令牌来取消他们的会员资格。现在我需要令牌 table 中的多个字段。

目前我正在使用 str_rand(26) 但有可能它会生成一个已经在数据库中的字符串,因为当用户单击取消 link 我得到 table 基于令牌的条目,因此它不是一个好的模型。

我想要的是提供几个字段,并根据这些字段生成一个令牌,当我收到该令牌时,我可以取回那些 IDS 并访问该特定行。

For example generate_token(user_id + payment_id + registration_id)

或者如果对于此类任务有更好的解决方法,请分享。

What I want is to provide few fields and based on those fields a token is generated and when I receive that token I can get those IDS back and access that particular row.

这不适用于令牌,因为它们是散列或随机的。如果它是这三个 id 的散列,您可以从 id 计算散列,但几乎不可能(散列不可反向计算)从散列中获取 id。

我会说为取消订阅过程生成一个令牌,然后使用该特定令牌删除数据记录是正确的方法。 生成两个相同(如果足够长,例如 32 个字符)标记的概率几乎可以忽略不计。补充一点,token只在用户要求取消订阅的时间段内存在,直到他确认操作。

例如 GUID 的 32 个字符 21EC2020-3AEA-4069-A2DD-08002B30309D 被认为是全局唯一的!