Php sha512密码安全吗

Php sha512密码安全吗,php,passwords,sha512,Php,Passwords,Sha512,我想知道这对于在mysql数据库中存储密码是否足够安全 <?php $password=hash('sha512',$_POST['password']); //and then insert it into and mysql database ?> 这安全吗?如果不是的话,我怎么做才能更安全呢?基本的、直接的哈希数多年来一直被认为是不安全的md5已经彻底崩溃多年了。直到6-8年前,盐渍哈希一直被认为是最佳实践,但现在它们也不再被认为是安全的 请使用以下方法之

我想知道这对于在mysql数据库中存储密码是否足够安全

<?php
    $password=hash('sha512',$_POST['password']);
    //and then insert it into and mysql database
?>


这安全吗?如果不是的话,我怎么做才能更安全呢?

基本的、直接的哈希数多年来一直被认为是不安全的
md5
已经彻底崩溃多年了。直到6-8年前,盐渍哈希一直被认为是最佳实践,但现在它们也不再被认为是安全的

请使用以下方法之一安全加密密码:

  • (谷歌链接,因为原生PHP方法是非常新的,实现它将根据您的PHP版本而有所不同)-这将被认为是目前行业标准的最佳实践
  • (谷歌链接,出于与上述相同的原因)-这是一种与bcrypt稍有不同的策略,通常被认为较弱,但非常可调,可能更容易实施,应该被视为最低限度
  • (我没有研究过这个特定的模块,但这是Google上的最高结果)-scrypt具有某些特性,应该比bcrypt更安全,但它缺少了bcrypt所具有的一个关键要素——人们尝试打破它并失败的悠久历史

所有这些功能的关键在于,它们设计为缓慢运行。特别是,如果传统的哈希算法每秒可以运行数百万次或数十亿次,从而允许攻击者在合理的时间内强制执行您的密码,则这些函数可以调整为每秒仅运行10次、两次、一次,甚至需要几秒钟才能完成。您永远不会希望将这些算法设置为以这种方式运行,您可能希望对其进行调整,使其在1/10到3/10秒内完成,这对您的用户来说几乎是不可察觉的,但仍然会使暴力强制变得不切实际。

我建议使用河豚鱼
使用自定义生成的salt

您使用的php版本是什么?如果>=5.5,你可以使用
password\u hash
函数使用直接的hash根本不安全:至少,你应该使用salted hash。我认为这是我一个月前安装Apache以来最新的hash之一。所以只要$password=password\u hash($\u POST['password'])?如果不指定safe-ough-for-what?safe-ough?meh.safe-ough-for-financial-information?hella不,回答这些问题确实是不可能的。