2015-03-18 51 views
0

其他不仅仅是散列这样的密码:鼎立安全使用

password_hash($password, PASSWORD_BCRYPT); 

什么是迭代bcrypt的推荐几轮?我确信四轮河豚容易受到二阶差分攻击,但在大多数情况下,使用哈希处理的服务器可能会很好,成本大得多。 14轮可以与伪随机置换区分开来,所以排除了这一点。

是16可能的最高成本?另外盐是如何生成的(如果省略)?

+0

没有办法推荐任何东西。这一切都取决于你的威胁评估。如果国家安全局在你之后,那么500 kajillion轮可能是不够的。如果谷歌盒式解码器环很小,那么跳过bcrypt并用base64或其他东西“加密”。 – 2015-03-18 20:55:46

+0

请您重新阅读标题? – schmitsz 2015-03-18 20:57:30

回答

1

如果使用BCrypt,则不指定轮次数,而是定义成本因子。成本因素将提高到2的幂,这意味着将成本因子增加1,将使计算时间加倍。

$numberofRounds = 2^$costFactor 

默认值是目前10,最高可能值目前31要确定应全面走另一条路,衡量你的服务器需要针对不同的成本因素的时间成本因素。然后,您可以决定服务器可承受的成本因素。

PHP文档中有一个小的example script,这有助于找到合适的成本因素。

+0

盐怎么样?如果作为参数被省略,它是如何产生的? – schmitsz 2015-03-18 21:21:44

+0

@schmitsz - 最好省略此参数,然后该函数将从操作系统的随机源生成一个加密安全的盐。 – martinstoeckli 2015-03-18 21:23:42

+0

我想你误解了我的问题。我不是问什么更好,但是如何在没有指定参数时完成盐析。 – schmitsz 2015-03-18 21:29:21