我必須創建一個登錄模塊(問題不是語言特定的),但我不知道如何驗證用戶。我在哪裏以及如何存儲密碼。我將不得不加密和解密我的密碼,如果是的話,建議最好的方法是什麼?總的來說,我需要知道我需要開發哪些用戶可以安全登錄以訪問我的網站的登錄模塊。如何創建一個登錄模塊
0
A
回答
3
您不需要解密您的密碼以驗證它們,只需一種加密方式就可以正常工作。這個想法是,當用戶輸入密碼時,你可以用相同的方法(使用相同的算法和「salt」)對它進行加密,然後與存儲在數據庫中的加密密碼進行比較。如果它們相等,很有可能意味着它是相同的原始密碼。因此,您可以防止任何人 - 管理員或任何攻擊者 - 知道用戶在您的網站上使用的原始密碼。至於其餘部分,它非常簡單,你的數據庫中有一張表,其中包含用戶登錄,加密密碼以及可能的一些配置文件信息(全名等)。
我通常用下面的函數來散列用戶密碼:
$password_hash = sha1(MY_SALT_1 . $login_name . MY_SALT_2 .
$password . MY_SALT_3);
其中MY_SALT_ *是任意的預定義的字符串,可以是例如'黑暗','側面','月亮'(或者實際上越不相關 - 越好)。
0
是的。你需要加密用戶的密碼。因爲大多數用戶使用相同的密碼幾乎所有的網站。當時他們不想顯示密碼給管理員。另一個原因是大多數時間站點數據庫不僅可以由管理員訪問,還可以在組織中訪問其他技術人員。因此,最好對密碼進行加密。SHA1是進行加密的最佳方式。
Where and how will i store the passwords.
我不確定這是什麼意思。每個人都使用它的數據庫,如phpmyadmin。
相關問題
- 1. 如何創建一個pam模塊?
- 2. 你如何創建一個Perl模塊?
- 3. 如何創建一個寶石模塊?
- 4. 如何創建一個內嵌模塊
- 5. 如何創建一個Play模塊?
- 6. 如何創建一個模塊[qpython3]
- 7. 如何在覈心php中創建pyrocms登錄模塊?
- 8. 創建一個子模塊模塊
- 9. 創建一個Python模塊
- 10. 創建一個NodeJS模塊
- 11. 登錄多個模塊
- 12. 多個Joomla登錄模塊
- 13. 如何創建Facebook一樣登錄?
- 14. 如何創建Android登錄
- 15. 如何創建一個登錄頁面,如果一旦登錄就一直登錄?
- 16. 如何「繼承」一個Ruby模塊來創建另一個模塊?
- 17. 登錄Http模塊
- 18. Nginx:登錄模塊
- 19. Titanium登錄模塊
- 20. 爲Powershell創建一個登錄宏?
- 21. 創建一個OpenID登錄小部件
- 22. 創建一個php登錄頁面
- 23. 創建一個活動登錄
- 24. 創建一個登錄腳本
- 25. 在html中創建一個登錄框
- 26. 創建一個寧靜的登錄API
- 27. 在Django中構建登錄模塊
- 28. 如何創建JS模塊?
- 29. 如何創建子模塊?
- 30. 如何使用simple_salesforce模塊在Salesforce中創建多個記錄
對此感到遺憾,但讓我們說用戶輸入的密碼錶單提交後,我從請求params收到密碼。現在按照你我應該加密他們,並與db中的密碼進行比較吧?還是不止於此。 – 2010-10-23 10:10:06
首先你需要輸入登錄名並在數據庫中查找。一旦找到了所需的行,請確保用戶輸入了正確的密碼。這是您從表單中獲取密碼的地方,將其散列並與存儲在數據庫中的密碼進行比較。如果它們是真實的,則意味着用戶輸入的密碼與他/她在您的網站上註冊時相同。很明顯,當用戶首先在你的網站上註冊時,你需要以同樣的方式對他/她的密碼進行哈希處理。 – mojuba 2010-10-23 10:14:23
因此,當用戶嘗試登錄其未加密的密碼時,密碼從瀏覽器傳輸到服務器是安全的。請不要介意它是否聽起來很愚蠢。 – 2010-10-23 10:39:12