快速生成令牌的方法 - PHP

时间:2011-06-14 15:02:58

标签: php

  

可能重复:
  PHP: How to generate a random, unique, alphanumeric string?

我想为随机长度[4-6]个字符生成随机令牌[字母数字] 有人可以帮忙吗?

3 个答案:

答案 0 :(得分:9)

您可以使用uniqid(在那里给出的示例中搜索“token”)并使用substr缩短它。

答案 1 :(得分:4)

首先,你可以得到10 + 26 + 26 = 62 6次之间的随机数,然后计算得到的字符串,这看起来很容易。

<?php
function ()
{
$letters={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9,10}
return array_rand($letters).array_rand($letters)......... // you get the point

?> 

答案 2 :(得分:2)

或者如果您更喜欢“硬”的方式......

$len = random(4,6);
$token = array();
for ($i = 0; $i < $len; $i++) {
  $ord = 0;
  switch(random(1,3)) {
    case 1: // 0 - 9
      $ord = random(48,57);
      break;
    case 2: // A - Z
      $ord = random(65,90);
      break;
    case 3: // a - z
      $ord = random(97,112);
      break;
  }
  $token[] = chr($ord);
}