我的程序仅适用于我。 我被要求把它公开供我上学,但因为现在我只是比较喜欢检查输入密码是否正确
useriname和密码,如果inputu ==用户名& & inputp ==密码
但后来我脑袋一下挂钩和东西读出内存,如果我比较它,它应该很容易获得访问。
我不知道如何保存它,我听说过“散列”pw,然后用相同的算法对输入进行散列,然后比较散列,但不能读出算法呢?
我不知道,谢谢你的帮助!
我的程序仅适用于我。 我被要求把它公开供我上学,但因为现在我只是比较喜欢检查输入密码是否正确
useriname和密码,如果inputu ==用户名& & inputp ==密码
但后来我脑袋一下挂钩和东西读出内存,如果我比较它,它应该很容易获得访问。
我不知道如何保存它,我听说过“散列”pw,然后用相同的算法对输入进行散列,然后比较散列,但不能读出算法呢?
我不知道,谢谢你的帮助!
只使用散列函数是不够的,只是增加一点盐对提高安全性没有多大作用,密码散列速度非常快。相反,用随机盐迭代HMAC约100ms持续时间,然后用散列表保存盐。
使用的功能,例如PBKDF2
(又名Rfc2898DeriveBytes
)password_hash
/password_verify
,Bcrypt
和类似的功能。关键是要让攻击者花费大量时间通过强力查找密码。
参考文献:
见How to securely hash passwords, The Theory的安全Stackexchange。
请参阅OWASP(Open Web Application Security Project)Password Storage Cheat Sheet。
见Modern, Secure, Salted Password Hashing Made Simple
保护你的用户是非常重要的,记住,用户会在许多网站使用相同的密码,如果您的密码被泄露,可能在其他网站上的用户。请使用安全的密码方法。
书籍:
Handbook of Applied Cryptography由Alfred J.梅内塞斯,保罗C.面包车Oorschot和Scott A.范斯通,看到免费下载
Cryptography Engineering由尼尔斯·弗格森,布鲁斯和河野忠义
Cryptography Decrypted by H. X. Mel和Doris M. Baker(我真的很喜欢)
非常感谢你,我现在有一个想法,我可以开始! –
非常感谢! –
*“但你不能读出算法吗?”*是的,但这并不意味着你的程序是不安全的。考虑到RSA和ECDSA是开放的加密算法,并且它们也被认为是安全的。尽管*已知,但好的加密算法是安全的*。 – cdhowie
如果有人想破解你的密码,他会这样做。你为什么想要安全?密码的目的是什么? – user463035818
你想要做的是使用像sha512这样的加密算法。用户密码附加一个'salt',然后通过'sha512'算法运行,然后将其作为密码存储。然后,当他们再次登录时,您将按照相同的步骤将保存的加密密码与输入的密码进行比较。 –