Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP是在我们这个时代使用密码的最佳方式_Php_Hash_Salt_Saltedhash - Fatal编程技术网

PHP是在我们这个时代使用密码的最佳方式

PHP是在我们这个时代使用密码的最佳方式,php,hash,salt,saltedhash,Php,Hash,Salt,Saltedhash,如何为每个用户制作绝对原创的食盐? 在PHP中使用time()函数是否更好?考虑使用随机盐而不是非随机盐。。也许你会在本文中发现一些有用的东西 还可以看看这篇文章 一种方法是为每个用户生成一个唯一的salt,并将该salt存储在DB中 另一个好方法是生成密码散列的算法必须计算一秒以上的salt。你的哈希算法越复杂-想要破解你的数据库的人面临的问题就越多考虑使用随机盐而不是非随机盐。。也许你会在本文中发现一些有用的东西 还可以看看这篇文章 一种方法是为每个用户生成一个唯一的salt,并将该salt

如何为每个用户制作绝对原创的食盐? 在PHP中使用
time()
函数是否更好?

考虑使用随机盐而不是非随机盐。。也许你会在本文中发现一些有用的东西

还可以看看这篇文章

一种方法是为每个用户生成一个唯一的salt,并将该salt存储在DB中

另一个好方法是生成密码散列的算法必须计算一秒以上的salt。你的哈希算法越复杂-想要破解你的数据库的人面临的问题就越多考虑使用随机盐而不是非随机盐。。也许你会在本文中发现一些有用的东西

还可以看看这篇文章

一种方法是为每个用户生成一个唯一的salt,并将该salt存储在DB中


另一个好方法是生成密码散列的算法必须计算一秒以上的salt。你的哈希算法越复杂,想要破解你的数据库的人面临的问题就越多

 $salt = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM));

使用这行代码在php中生成浓盐

 $salt = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM));

您可以在PHP中使用
microtime()
函数以微秒而不是秒为基础生成一个数字,这使得一个用户几乎不可能与另一个用户拥有相等的盐。您还可以将此数字与用户ID相乘

也许一个
md5(uniqid())
对于您的应用程序来说就足够了

编辑:忘记使用
uniqid()
函数提及more_entropy参数。即使函数在同一微秒内运行两次,也会减少出现相同字符串的机会,因此编辑后的函数应如下所示:

$salt = md5(uniqid($user_id, TRUE));

您可以在PHP中使用
microtime()
函数以微秒而不是秒为基础生成一个数字,这使得一个用户几乎不可能与另一个用户拥有相等的盐。您还可以将此数字与用户ID相乘

也许一个
md5(uniqid())
对于您的应用程序来说就足够了

编辑:忘记使用
uniqid()
函数提及more_entropy参数。即使函数在同一微秒内运行两次,也会减少出现相同字符串的机会,因此编辑后的函数应如下所示:

$salt = md5(uniqid($user_id, TRUE));

在许多情况下,一个简单的
uniqid(mt_rand(),true)
可以生成一个随机salt。结合河豚应该给你一个很好的密码哈希


备选方案是伪随机源,如
/dev/uradom
openssl\u pseudo\u random\u bytes()
。还有一些服务可以为您生成随机数据(基于放射性降解)。

在许多情况下,一个简单的
uniqid(mt_rand(),true)
就可以生成随机盐。结合河豚应该给你一个很好的密码哈希


备选方案是伪随机源,如
/dev/uradom
openssl\u pseudo\u random\u bytes()
。还有一些服务可以为您生成随机数据(基于放射性降解)。

我认为这是openssl_random_pseudo_字节(),我认为这是openssl_random_pseudo_字节(),我不明白您所说的“必须计算盐超过一秒”是什么意思。您的意思是执行它需要一秒以上的时间吗?请详细说明。@nullability是的,执行时间超过一秒我不明白你说的“必须计算超过一秒的盐量”是什么意思。你是说执行时间应该超过一秒吗?请详细说明。@nullability是的,执行时间超过一秒