相关疑难解决方法(0)

如何使用PHP在两个日期之间生成随机日期?

我正在编写一个应用程序,我需要在两个固定时间戳之间分配随机日期

我怎么能用PHP实现这一点我先搜索过但只找到了Java而不是php的答案

例如 :

$string = randomdate(1262055681,1262055681);
Run Code Online (Sandbox Code Playgroud)

php datetime timestamp date

54
推荐指数
8
解决办法
7万
查看次数

我的PHP登录系统有多安全?

我是PHP新手,这也是我的第一个登录系统,所以如果你们可以查看我的代码,看看你是否能发现任何安全漏洞,那将是很棒的:

注意:虽然此处未显示,但我正在清理所有用户输入.

注册:

第1步:我获取用户选择的密码并通过此功能运行它:

encrypt($user_chosen_password, $salt);

function encrypt($plain_text, $salt) {
    if(!$salt) {
        $salt = uniqid(rand(0, 1000000));
    }
    return array(
        'hash' => $salt.hash('sha512', $salt.$plain_text),
        'salt' => $salt
    );
}
Run Code Online (Sandbox Code Playgroud)

第2步:然后我将哈希和salt($password['hash']$password['salt'])存储在数据库的users表中:

id | username | password  | salt       | unrelated info...
-----------------------------------------------------------
1  | bobby    | 809a28377 | 809a28377f | ...
                fd131e5934
                180dc24e15
                bbe5f8be77
                371623ce36
                4d5b851e46
Run Code Online (Sandbox Code Playgroud)

登录:

步骤1:我获取用户输入的用户名并查看数据库以查看是否返回了任何行.在我的网站上,没有2个用户可以共享相同的用户名,因此用户名字段始终具有唯一值.如果我返回1行,我会抓住该用户的盐.

步骤2:然后我通过加密功能运行用户输入的密码(如上所述),但这次我还提供从数据库检索到的盐:

encrypt($user_entered_password, $salt);
Run Code Online (Sandbox Code Playgroud)

第3步:我现在有一个正确的密码来匹配这个变量:$password['hash'].所以我在数据库上进行第二次查找,看看输入的用户名和散列密码是否一起返回一行.如果是,那么用户的凭证是正确的.

步骤4:为了在用户凭证通过后记录用户,我生成一个随机唯一字符串并对其进行哈希处理:

$random_string = uniqid(rand(0, 1000000));
$session_key = hash('sha512', …
Run Code Online (Sandbox Code Playgroud)

php security authentication encryption login

40
推荐指数
3
解决办法
2万
查看次数

mt_rand有什么缺点?

偏见的定义是什么:

当max超过2 ^ 32时,mt_rand()返回值的分布偏向于64位版本的PHP上的偶数.

如果这是在四舍五入的替代打破规则中所述的那种偏见,我认为这不重要(因为偏见不是真的可见).

除了mt_rand()宣称是比快四倍rand(),只是在前面增加3个字符!

假设mt_rand可用,使用它的缺点是什么?

php random rounding

26
推荐指数
2
解决办法
2万
查看次数

随机数,长度为15个字符且为正数

我正在尝试使用php制作长度正好为15个字符且正面的随机数字.我试过rand(100000000000000, 900000000000000)但它仍然会产生负数和小于15的数字.是否还有其他功能我可以做到这一点,或者我应该只使用rand(0, 9)15次并连接结果?

php random

3
推荐指数
1
解决办法
3789
查看次数