【问题标题】:C++ and PHP common password hash standardC++ 和 PHP 通用密码哈希标准
【发布时间】:2017-11-04 22:28:44
【问题描述】:

我正在寻找一个易于在 php 和 c++ 上实现的密码哈希标准。我知道有 BCrypt,但在 c++ 上实现起来并不容易。是否有任何哈希算法易于在两种语言上实现?我正在寻找这个,因为我不希望我的 myBB 论坛被破解。他们将 md5 与盐一起使用,这并不是那么好。
它不能保护我不被破解。我知道。但如果论坛遭到入侵,我想要一个安全的哈希值,这样他们就无法轻易破解密码。

【问题讨论】:

  • 您应该将encryption 更改为hash。加密后可以解密;散列是一种方法。
  • 加密/散列不能保护您免受您的论坛被“破解”。一旦您的数据被泄露,它只会阻止第三方查看所有密码。 (当然应该总是这样)
  • 谢谢,我会阅读这两个链接。但是 Crypto++ 实现起来并不容易 imo

标签: php c++ security cryptography password-hash


【解决方案1】:

简单的答案:只需在两端使用 libsodium,然后在 C/C++ 中使用 crypto_pwhash_str(),在 PHP 中使用 sodium_crypto_pwhash_str()。这为您提供 Argon2id,在适当的成本因素下,它比 bcrypt 更好。

即使很想自己“实现”加密,您最好还是使用标准实现,例如 libsodium、libcrypto(OpenSSL 的一部分)等。

【讨论】:

    【解决方案2】:

    我建议使用更强大的算法,例如 SHA-256 或 Blowfish。即使使用 MD5 盐,它也比它们弱。

    但是,无论您使用哪种算法,都应在输入中使用盐。您可以在 php 和 c++ 中有效且轻松地使用。

    【讨论】:

    • SHA-256 是一种通用算法,不应该用于密码散列。它太快了。但我会调查河豚
    • 另外我认为河豚是一种加密/解密方法而不是密码哈希算法。从我的错误中学习^^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 2011-01-09
    相关资源
    最近更新 更多