【问题标题】:How to encrypt using SHA256 and salt?如何使用 SHA256 和 salt 进行加密?
【发布时间】:2016-06-11 22:19:36
【问题描述】:

之前:对不起我的英语。

好的,现在我正在使用以下加密方法:

SHA256_PassHash(inputtext, "78sdjs86d2h", MyHash, sizeof(MyHash));

带盐的 SHA256:“78sdjs86d2h

现在我正在像这样检查密码:

if(isset($_POST['username']) && isset($_POST['password'])){
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);

    $check = get_row("SELECT playerID FROM playeraccounts WHERE playerName='$username' && playerPassword='$password'");
    if(isset($check['playerID']))
    {
        $_SESSION['username'] = $_POST['username'];
        $_SESSION['password'] = $_POST['password'];
        mysql_query("UPDATE playeraccounts SET rpgon=1 WHERE playerName='$username'");
        $id = $check['playerID'];
        header("location: index.php");
    }
    else
    {
        $err = 'Username sau parola incorecte';
    }
}

我怎样才能使它与这种盐法一起工作?请问我对 PHP 不是很了解...有人可以启发我如何加密输入文本吗?

【问题讨论】:

  • 您不应直接在您的应用程序或 PHP 代码中处理用户名/密码。相反,身份验证框架应该已经为您完成了。
  • SHA256 是一个哈希函数。您不会将其用于加密。
  • MySQL 函数被贬值了你不妨启动 MySQLi 或 pdo
  • 是的,这也是一个好点...... SHA256 是一个加密散列函数......更多关于这里security.stackexchange.com/questions/80623/…

标签: php cryptography salt sha256 saltedhash


【解决方案1】:

不要使用 SHA256(供将来参考 is a hash function, not an encryption method)来存储密码。请参阅 How to safely store your users' passwords 了解最新的最佳实践。

由于您询问的是 PHP,因此您想使用 password_hash()password_verify()

另外,beware of SQL injection corner cases

【讨论】:

    猜你喜欢
    • 2017-05-03
    • 1970-01-01
    • 2015-10-19
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2018-07-09
    相关资源
    最近更新 更多