我昨天问了一个关于密码安全的问题。
我是新来的保安。
我正在使用mysql数据库,需要在那里存储用户密码。答案告诉我,hashing然后保存密码的哈希值是正确的方法。
基本上,我想和你们确认一下,这是正确的。
这是一个分类网站,对于用户输入的每一个分类,他/她必须输入一个密码,以便他/她以后可以使用该密码删除分类(例如,当产品被出售时)。
在一个名为"put_ad.php“的文件中,我使用$_POST方法从表单中获取传递。然后我将其散列并放入mysql表中。然后,每当用户想删除广告时,我都会通过散列来检查输入的密码,并将输入密码的哈希值与mysql db中的哈希值进行比较,对吗?
但是,如果我作为管理员想要删除一个机密,有没有一种方法可以轻松地“解压缩”密码呢?
目前使用的是sha1。
一些代码非常感谢。
谢谢
发布于 2010-05-05 09:00:36
如果您是管理员,并且已经编写了代码,则不需要知道原始用户密码。作为管理员,您可以编写正确的代码来执行此操作。
这是用户身份验证和用户授权之间的区别。
发布于 2010-05-05 08:59:30
你所做的是正确的,但不,SHA,MD5和其他的只是一种方式散列,所以你不能解压它们(理论上你可以通过例如蛮力)。让你作为一个管理员删除的东西,也应该是你的授权管理的一部分。
发布于 2010-05-05 09:01:01
是的,你的第一部分说得对。
但是,没有办法(轻松地)解散密码。这实际上是存储散列而不是真正的密码的全部意义。
您应该简单地考虑在php应用程序中添加一些逻辑,这样当具有管理权限的用户登录时,就不需要检查删除条目的密码了。
https://stackoverflow.com/questions/2771732
复制相似问题