如何加密论坛注册的用户密码?

How to encrypt user passwords for forum registrations?

加密 phpBB 或 MyBB 论坛注册用户密码的最安全方法是什么?我不希望任何人能够访问用户密码,即使是那些管理 MySQL 数据库的人,也不希望有人设法破解数据库以使其无法查看它们。我只希望注册的用户知道他们的密码。

你可以使用 SHA512。

我看到您使用了 "mysql" 标签。请不要使用 SHA2() SQL 函数或任何其他 SQL 哈希函数。如果这样做,纯字符串将通过网络发送,并可能写入某些日志中。

改用 PHP hash() 函数,并指定 'sha256' 作为第一个参数。

除了一件事,我完全同意 Federico Razzoli 的回答。事实上,哈希必须在上游执行,在任何情况下都不能在数据库级别执行(因此您的问题可能与主题无关)。

然而,就安全性而言,仅使用散列函数是不够的。您仍然容易受到 dictionary attacks, rainbow table attacks, and some attacks by frequency analysis. It is essential to at least use a cryptographic salt.

的攻击

不过,最好是使用专为存储密码而设计的密钥派生函数。我建议你看看 PBKDF2 (hash_pbkdf2 with PHP), bcrypt (password_hash with PHP, which by default uses a judicious algorithm, bcrypt currently) or scrypt.

最后,你的问题建议你使用phpBB,这个论坛引擎通常应该单独处理密码的安全存储。