我有一个小网站使用Html,Css,Javascript和PhP。该网站包含一个用户必须输入密码的基本登录页面。然后将所述密码发送到php,然后使用SHA-512对其进行加密并将其添加到数据库中。我应该在Javascript还是在后端加密登录密码?
所以我开始想知道。这是做事的首选方式吗?我认为这可能会更好,如果我使用JavaScript加密密码,并发送到PHP时,它已经加密。至少这样,原始密码不会在POST请求中。
但这真的是正确的方法吗?如果任何人都能看到我使用的是什么类型的加密,这不是一件坏事吗?
正确的方法是使用HTTPS来保护传输过程中的密码,并使用服务器端为密码创建的慢哈希算法(* not * SHA256,或任何其他SHA家族成员,这些都是快速哈希,并且不要有盐)。 –
@ AlexanderO'Mara我正在使用HTTPS。我只是想知道散列应该在哪里完成。无论是什么散列。 – TheCrafter
你不应该使用简单的散列函数来保护你的用户密码。你需要使用像PBKDF2,bcrypt,scrypt和Argon2这样强大的散列方案。一定要使用高成本因子/迭代次数。选择成本是很常见的,因此一次迭代至少需要100ms。查看更多:[如何安全地哈希密码?](http://security.stackexchange.com/q/211/45523) –