PHP-如果不是MD5,数据库加密使用什么?

PHP-如果不是MD5,数据库加密使用什么?,php,encryption,hash,md5,sha,Php,Encryption,Hash,Md5,Sha,好的,我不知道以前是否有人问过这个问题,但是有很多资料表明,不建议使用MD5散列敏感数据,例如密码。但没有人对他们将使用的其他哈希函数给出任何建议或指示。你所看到的,包括在这个网站上的,都是人们咆哮着说它是安全的,还是不安全的 众所周知,维基百科说: “1996年,MD5的设计中发现了一个缺陷。虽然它不是一个 显然是致命的弱点,密码学家开始推荐使用 其他算法,如SHA-1-1,后来发现是 也很脆弱。” 这是由那些告诉你不要使用MD5或Sa1的人所引用的,但是他们不想启发其他人去考虑你应该考虑的其

好的,我不知道以前是否有人问过这个问题,但是有很多资料表明,不建议使用MD5散列敏感数据,例如密码。但没有人对他们将使用的其他哈希函数给出任何建议或指示。你所看到的,包括在这个网站上的,都是人们咆哮着说它是安全的,还是不安全的

众所周知,维基百科说:

“1996年,MD5的设计中发现了一个缺陷。虽然它不是一个 显然是致命的弱点,密码学家开始推荐使用 其他算法,如SHA-1-1,后来发现是 也很脆弱。”

这是由那些告诉你不要使用MD5或Sa1的人所引用的,但是他们不想启发其他人去考虑你应该考虑的其他选择。 当然,我们不要忘记,设计应用程序的方式、存储密钥的位置、谁有权访问什么、使用salt等也非常重要,当然更重要

当然,验证和验证所有数据,而不是为SQL注入留下任何后门,XSS漏洞是关键。但从我所学到的,md5可以很容易地“暴力强迫”或“脱盐”。我不是一个安全专家,这就是为什么我问,所以我和任何像我这样有经验的人都可以用更简单的术语来理解

这就是我目前正在做的事情,但也许有人能给我正反两方面的建议:

$hash = hash('sha256', $salt . hash('sha256', $_POST['pass']) );
我希望我的问题没有出格,我知道这方面有很多文章和页面,但我只是没有找到任何答案,我相信其他人也希望知道。

由于PHP 5.5,您可以使用:

由于PHP 5.5,您可以使用:


我已经用过好几次了。我的许多朋友都使用它,正如我所说,这也是因为它有一些好东西,并且有一个很好的解释
我已经用过好几次了。我的许多朋友都使用它,正如我所说,这也是因为它有一些好东西,并且有一个很好的解释

每当你将哈希描述为加密时,无辜的兔子就会死去。我的第一个想法是sha 256/sha 512/等等。。还可以考虑动态salt(例如用户名的子字符串或其他内容)。这样,每个人都会有所不同。每当你将哈希描述为加密时,请检查blowfish实现。一只无辜的兔子死了。我的第一个想法是sha 256/sha 512/等等。。还可以考虑动态salt(例如用户名的子字符串或其他内容)。这样每个人都可能不同。检查blowfish实现如果您运行的是旧版本的PHP,请获取compat函数:。无论哪种方式,都不要试图自己解决这个问题,而要实施现有的最佳实践!在以前的版本中,只需直接使用
crypt
:(
password\u hash
只是低级crypt函数的包装器)@troelskn这有点烦人,因为您需要自己处理salt。
密码\u compat
显然更易于使用。如果您运行的是旧版本的PHP,请获取compat函数:。无论哪种方式,都不要试图自己解决这个问题,而要实施现有的最佳实践!在以前的版本中,只需直接使用
crypt
:(
password\u hash
只是低级crypt函数的包装器)@troelskn这有点烦人,因为您需要自己处理salt。
密码\u compat
显然更容易使用。
/**
 * In this case, we want to increase the default cost for BCRYPT to 12.
 * Note that we also switched to BCRYPT, which will always be 60 characters.
 */
$options = [
    'cost' => 12,
];

echo password_hash("Stack Overflow", PASSWORD_BCRYPT, $options)."\n";