Php不能以超过17的成本使用

I'm using php's crypt() to hash passwords. I decided to go with blowfish algorithm and use salt. Salts in crypt() determine algorithm so blowfish's salt begins with $2y$xx$ where xx is cost parameter in range 4-31 (Refer to http://php.net/manual/pl/function.crypt.php). I'm also using bin2hex and openssl random generator to get random salt. As I understand it setting it higher will require more computing time and make brute-force attack longer.

My problem is that I can't get my script to work with cost parameter set over 17. When ran from the browser page is loading approx 1min and then stops with blank page. Not even echo. Why is that? How could I use 30 instead of 17? Is this a matter of my php server settings ?

Here's code:

<?php
    $reps=17;
    echo 'pre';
    echo crypt('passwdMike',"$2y$".$reps."$".bin2hex(openssl_random_pseudo_bytes(22)));    
    echo 'post';
?>

Edit: I can go with higher factors from command line. 18 was under minute. 30 waiting over 10minutes now. So it's obviously too much and 12 will suffice.

doupiao9318
doupiao9318 他们不介意它:)。这是一个学校项目,无论如何我都要减少登录时间。但感谢您的投入。
4 年多之前 回复
duanchen1937
duanchen1937 刚读完那个。直到这一点,我使用12没有API,只有地穴和上述盐。什么API只使用crypt并使用一个命令生成salt。我认为使用更高的因素会减慢登录所需的时间,从而延长远程攻击的时间。
4 年多之前 回复
duanfu1945
duanfu1945 请注意,使用密码api并不意味着您可以将成本增加到30,并且还要注意默认成本是10,这被认为是一个很好的基线。考虑一下您拥有的硬件以及您愿意等待密码的时间,12-13通常是一个令人愉快的媒介,我似乎看到了很多。
4 年多之前 回复
douzhou7037
douzhou7037 我不太清楚17因素有多大。生成一个就花了10秒钟。(1分钟是一堆哈希)。我没有在命令行上试过它。我会尝试php密码API。
4 年多之前 回复
douzi2749
douzi2749 它是否在命令行上运行(对我来说,大约需要8秒)?图17是具有当前硬件的极高工作因素。
4 年多之前 回复
duana1986
duana1986 这可能是一个超时问题,17已经是一个很大的工作因素!
4 年多之前 回复
douda5706
douda5706 你有理由使用30?另外,请使用PHP密码API而不是完成所有这些操作。在30岁时,PHP可能会超时。
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问