我有一個小網站使用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) –