如何基于少数字段生成令牌

时间:2015-07-09 10:53:00

标签: php laravel token

我需要为用户生成令牌以取消其会员资格。现在我需要令牌表中的多个字段。

目前我正在使用str_rand(26),但有可能它会生成一个已存在于数据库中的字符串,因为当用户点击取消链接时,我得到基于令牌的表项,因此它不是一个好的模型

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

For example generate_token(user_id + payment_id + registration_id)

或者如果有更好的解决方法,请分享。

1 个答案:

答案 0 :(得分:0)

  

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

这不会使用令牌,因为它们是散列或随机的。如果它是这三个id的哈希值,你可以从id计算哈希值,但它几乎不可能(哈希值不可反算),以便从哈希值中取出ID。

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

例如,21EC2020-3AEA-4069-A2DD-08002B30309D这样的32个字符GUID被视为全球唯一!