检查输入密码是否正确

Checking if the input-password was correct

到目前为止,我的程序只适合我自己。 我被要求为我的学校制作它 public,但从现在开始我只是比较用户名和密码,如

if inputu == username && inputp == password

但后来我开始研究挂钩和读取内存的东西,如果我像这样比较它应该很容易访问。

我不知道如何保存它,我听说 "hashing" pw 然后用相同的算法对输入进行散列并比较散列,但你不能也读出算法吗?

我不知道,谢谢你的帮助!

仅使用散列函数是不够的,仅添加盐对提高安全性也无济于事,加密散列非常快。取而代之的是用随机盐迭代 HMAC 大约 100 毫秒,然后用哈希值保存盐。

使用 PBKDF2(又名 Rfc2898DeriveBytes)、password_hash/password_verifyBcrypt 等函数和类似函数。重点是让攻击者花费大量时间通过暴力破解找到密码。

References:

请参阅 Security Stackexchange 上的 How to securely hash passwords, The Theory

参见 OWASP(开放 Web 应用程序安全项目)Password Storage Cheat Sheet

Modern, Secure, Salted Password Hashing Made Simple

保护您的用户很重要,请记住用户将在许多网站上使用相同的密码,如果您的密码被泄露可能会影响其他网站上的用户。请使用安全密码方式。

Books:

Handbook of Applied Cryptography 作者:Alfred J. Menezes、Paul C. van Oorschot 和 Scott A. Vanstone,请参阅免费下载

Cryptography Engineering 作者:尼尔斯·弗格森、布鲁斯·施奈尔和河野忠义

Applied Cryptography 布鲁斯·施耐尔

Cryptography Decrypted 作者:H. X. Mel 和 Doris M. Baker(我非常喜欢的好开胃菜)