【发布时间】:2013-08-27 16:47:58
【问题描述】:
我有一个 localhost php mysql 销售点(Windows),我发现这段代码是关于根据指定时间(每分钟)生成 rand 数字:
这是代码:
<?php
class Random {
// random seed
private static $RSeed = 0;
//set seed
public static function seed($s = 0) {
self::$RSeed = abs(intval($s)) % 9999999 + 1;
self::num();
}
// generate random number
public static function num($min = 0, $max = 9999999) {
if (self::$RSeed == 0) self::seed(mt_rand());
self::$RSeed = (self::$RSeed * 125) % 2796203;
return self::$RSeed % ($max - $min + 1) + $min;
}
}
// set seed
Random::seed(check_time());
// echo 10 numbers between 1 and 100
for ($i = 0; $i < 10; $i++) {
echo Random::num(1, 100) . '<br />';
}
function check_time(){
echo "Your Time is = ".date('h:i:s')."<br />";
if (date('i')) {
return date('i');
}
}
?>
现在这很完美,但这不是我真正需要的。我正在寻找使用rand 输出数字访问我的管理区域网页的想法。怎么可能呢?就像一周前一样,我得到了一张新的汇丰安全卡,它会生成随机数并与他们的服务器同步。用PHP和Mysql做这样的事情真的很难吗?
作为澄清我想要什么的结论,我需要每分钟生成一个随机数,并且应该与 mysql db 同步-也许-?为了访问管理区域。
我正在寻找与这个想法相处的第一步,对不起我不熟悉PHP安全!
谢谢。
【问题讨论】:
-
存储随机数等?这不是一个好方法。你想实现这个:en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm - 作为一个起点,你可以看看谷歌身份验证器源代码:code.google.com/p/google-authenticator
-
@ThiefMaster 会读到,谢谢你的帮助!
标签: php mysql security date passwords