php教程:生成唯一的标识码
程序员文章站
2024-04-02 19:58:10
...
我们平时可能会在网站上面加一个别致的投稿页面,而在投稿页面,我们可能就会再增加一个更别致贴心的投稿完成自动注册功能。为了安全,这就需要我们生成一个随机的字符串作为临时密码。当然,这种在一定时间内生成唯一的标识码,还经常会用在账户激活。我们
我们平时可能会在网站上面加一个别致的投稿页面,而在投稿页面,我们可能就会再增加一个更别致贴心的投稿完成自动注册功能。为了安全,这就需要我们生成一个随机的字符串作为临时密码。当然,这种在一定时间内生成唯一的标识码,还经常会用在账户激活。我们现在来看看这种标志码的生成方法:可能呢,在同一时间点(精确到微秒)会有N个人来注册帐号,那怎么避免标志码重复呢。
function?random_key($len,$readable=false,$hash=false){ ?? ????$key='';? ?? ????if?($hash){ ?? ????????$key?=?substr(sha1(uniqid(rand(),true)),?0,?$len); ?? ????}else?if?($readable){ ?? ????????$chars=?'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';? ?? ????????for?($i?=?0;?$i?$len;?++$i){ ?? ????????????$key?.=?substr($chars,?(mt_rand()?%?strlen($chars)),?1); ?? ??????????????????} ?? ????}else{ ?? ????????for?($i?=?0;?$i?$len;?++$i) ?? ????????????$key?.=?chr(mt_rand(33,?126)); ?? ?????????} ?? ? ?? ????return?$key; ?? }??
注意哦,sha1函数第二个参数因为是true,所以会返回20 字符长度的原始格式,如果是false,那么将会返回一个 40 字符长度的十六进制数字字符串。uniqid用于生成唯一ID,第二个参数为true,可以让ID更具唯一性。chr函数用于生成对应的Acsii码。substr函数用于截取
。
声明: 本文采用 BY-NC-SA 协议进行授权 | IT路人
转载请注明转自《php教程:生成唯一的标识码》
下一篇: php读取xml属性
推荐阅读
-
Yii获取上传文件的后缀名_PHP教程
-
php循环table实现一行两列显示的方法,table两列_PHP教程
-
php教程:生成唯一的标识码
-
绑定列,列王的纷争账号绑定_PHP教程
-
一份用PHP代码写的程序员年终总结_PHP教程
-
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤_PHP教程
-
PHP中的替代语法介绍,PHP替代语法介绍_PHP教程
-
ThinkPHP的数据表操作_PHP教程
-
Codeigniter校验ip地址的方法,codeigniter校验ip_PHP教程
-
在win8.1下安装laravel5.1时碰到的坑不少,但总算搞掂,真有点不容易。,win8.1laravel5.1_PHP教程