在Yii中为users表创建唯一的随机令牌字符串

时间:2014-08-18 10:24:12

标签: php database yii token uniqueidentifier

我正在开发一个Yii应用程序,该应用程序要求'users'表有一个列'token',它需要是一个基于表中该用户的唯一随机字符串(例如,永远不会有相同的令牌两次)。

任何人都可以给我一些关于这样做的提示,或者是否已经设置了Yii组件/扩展/生成器来执行此操作。

另外 - 对此最优化的db列类型是什么?

2 个答案:

答案 0 :(得分:3)

我希望CSecurityManagergenerateRandomString()一起使用。请注意,它会生成一个包含字符〜和_

的字符串

数据库列将是varchar,其长度为字符串长度。

答案 1 :(得分:0)

我建议只使用hash,它产生长字符串并使用一些非常独特的字符串进行散列:

sha512($userName.time().rand(1000, 9999));

Some PHP hash algorithms lengths