如何使用PHP生成随机码

  介绍

如何使用PHP生成随机码?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

PHP是什么语言

PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:超文本预处理器)的缩写。PHP是一种HTML内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。

<强>解题思路

<强> (1)。第一思路

都是印象中匹配ASCII码进行随机读取的实现方法,此处可提供一个方法作为参考:

function  get_rand_ascii (=pw_length 美元;5){   时间=美元才能randpwd  & # 39; & # 39;;   for 才能;($小姐:=,0;,美元小姐:& lt;, pw_length;美元,美元我+ +),{   ,,,randpwd 美元。=,空空(mt_rand(33岁,99));   ,,}   return 才能;randpwd美元;   }

<强> (2)。第二思路

1。定义随机数,组内含能够使用的所有字符

function  getRandomString(长度=5美元),{//可才能任意添加需要的字符   时间=美元才能chars 阵列(   ,,,“a",,“b",,“c",,“d",,“e",,“f",,“g",,“h",,“我,,“j",,“k",   ,,,“l",,“m",,“n",,“o",,“p",,“q",,“r",,“s",,“t",,“u",,“v",   ,,,“w",,“x",,“y",,“z",,“A",,“B",,“C",,“D",,“E",,“F",,“G",   ,,,“H",,“我,,“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”;   ,,);=美元才能charsLen  count  (, chars 美元),安康;1;   shuffle 才能;(,chars 美元;);,//,将数组打乱   时间=美元才能output “,“;   ,,($小姐:=,0;,美元小姐:& lt;,长度;美元,美元小姐:+ +),{   ,,,output 美元。=,chars 美元;[mt_rand (0,大敌;charsLen 美元;)];   ,,}   return 才能;美元输出;   }

提示:此类的代码,建议去除可能引起歧义的字符,如:1、我,l, 0, o, o, 9日,q。

缺点:5个字符没有重复

2。比较上述1中的数组形式,设计字符串形式参考如下:

function  get_pass (=, length 美元,8,),{//才能,密码字符集,可任意添加你需要的字符=美元才能chars  & # 39; abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ! @ # $ % ^, * () -_  [] {} & lt;祝辞~ +=,。/? | & # 39;;   时间=美元才能password  & # 39; & # 39;;   for 才能;(,小姐:美元=,0;,美元小姐:& lt;,长度;美元,美元我+ +,),{   ,,,//,这里提供两种字符获取方式   ,,,//,第一种是使用,substr 截取识字课中美元的任意一位字符;   ,,,//,第二种是取字符数组,chars 美元;的任意元素   ,,,//,password 美元。=,substr($字符,mt_rand (0,, strlen($字符),安康;1),,1);   ,,,password 美元。=,$字符[,mt_rand (0,, strlen($字符),安康;1),);   ,,}   return 才能;美元密码;   }

<强> (3)。第三思路

发现的新思路,可使用加密算法进行获取

public  function  getRand () {   美元才能rand =,兰德(10000、100000);   美元才能str =, substr (base64_encode(兰德美元),,0,,5);   return 才能,str美元;   }

提示:<代码> md5() 函数只有数字和小写的字母

发现:<代码> base64_encode() 可以满足要求

<>强拓展延伸

针对于PHP设计,一般的随机码可用于验证码,分享码的生成,着重注意位数的限制,必要情况下,保证该随机码的唯一性。

<代码> password_hash> 5.5)

可用于用户的密码加密存储,不过有一点需注意:如果数据库迁移,对于java或. net语言将难以适用。

password 美元;=,& # 39;password1232456& # 39;;//前端,获取的原始密码//数据库存放的,使用BCRYPT算法加密的密码//此处仅为测试,实际应用时应从数据表中查询获得=//美元db_pass  & # 39; 2 y 10美元vjjc.rb 2美元/swAUnTfc9B94.l ix75kiZHvOZFpu0Dd8uzp07YWlj4q& # 39;;   db_pass 美元;=,password_hash(密码,美元,PASSWORD_BCRYPT);   if  (password_verify (password 美元,美元db_pass)) {   echo 才能“密码匹配“;   其他}{   echo 才能“密码错误“;   }

如何使用PHP生成随机码