php短信验证码随机数_PHP生成一个随机数验证码,需要什么特殊计算方法吗?

纯讨论问题。

比如生成一个4位数字或者六位数字的短信验证码,可以直接mt_rand(1000,9999)来生成吗?

或者如字母+数字的图像验证码。我看了一些开源框架的随机生成方法,都有比较复杂的方法。

网上搜索的方法,大部分都是超简单的方式。

网上的简单方法和开源框架的复杂方法,都有什么利弊呢?

if ($this->minLength > $this->maxLength) {

$this->maxLength = $this->minLength;

}

if ($this->minLength < 3) {

$this->minLength = 3;

}

if ($this->maxLength > 20) {

$this->maxLength = 20;

}

$length = mt_rand($this->minLength, $this->maxLength);

$letters = 'bcdfghjklmnpqrstvwxyz';

$vowels = 'aeiou';

$code = '';

for ($i = 0; $i < $length; ++$i) {

if ($i % 2 && mt_rand(0, 10) > 2 || !($i % 2) && mt_rand(0, 10) > 9) {

$code .= $vowels[mt_rand(0, 4)];

} else {

$code .= $letters[mt_rand(0, 20)];

}

}

return $code;

上面是摘抄的yii2的生成方法,for循环里面的这个if$i % 2 && mt_rand(0, 10) > 2 || !($i % 2) && mt_rand(0, 10) > 9是什么意思?为什么是对2取余,>2,>9什么的?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值