如何创建登录模块

时间:2010-10-23 09:16:24

标签: login cryptography

我必须创建一个登录模块(问题不是特定于语言的)但我不确定如何验证用户。我将在何处以及如何存储密码。我是否必须加密和解密我的密码,如果是,建议的最佳方法是什么。总的来说,我需要知道我需要注意什么才能开发一个登录模块,用户可以安全地登录访问我的网站。

2 个答案:

答案 0 :(得分:3)

您无需解密密码以验证密码,只需一种加密方式即可。这个想法是,当用户输入密码时,您以相同的方式加密它(使用相同的算法和“盐”),然后与存储在数据库中的加密密码进行比较。如果它们相同,很有可能意味着它是相同的原始密码。因此,您可以防止任何人 - 管理员或任何攻击者 - 知道用户在您的网站上使用的原始密码。

至于其余部分,它非常简单,您的数据库中有一个表,其中包含用户登录,加密密码以及可能的一些配置文件信息(全名等)。

我通常使用以下函数来哈希用户密码:

$password_hash = sha1(MY_SALT_1 . $login_name . MY_SALT_2 .
    $password . MY_SALT_3);

其中MY_SALT_ *是任意预定义的字符串,例如可以是“黑暗”,“一边”,“月亮”(或实际上相关性越低越好)。

答案 1 :(得分:0)

是的。确保您需要加密用户密码。因为大多数用户使用相同的密码几乎所有网站。当时他们不想向admin显示密码。另一个原因是大部分时间网站DB不仅可以通过admin访问,也可以访问组织中的其他技术人员。因此最好加密密码.SHA1是进行加密的最佳方式。
Where and how will i store the passwords.
我不确定你的意思。每个人都像phpmyadmin那样使用数据库。