设计用户表密码问题

asdfa23rdadsdfa 2009-11-14 05:18:35
设计用户表时,需不需要设计二列密码(一列保存未加密密码,一列保存加密密码)?
这样设计的初衷:当用户失去密码的时候,管理员可以更直接的把密码返回给用户。因为我是ASP.NET开发用的是MD5加密方式。
这样的设计2列是否更安全?更合理?
...全文
173 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
asdfa23rdadsdfa 2009-11-14
  • 打赏
  • 举报
回复
受教了。
波导终结者 2009-11-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wanghui0380 的回复:]
实际上数据库里使用MD5保存用户密码是件毫无意义的事情

MD5原本是用来保证信息在传输中是否正确的验证码,但国内程序员不知何故就把他当密码存储机制了(好像是受N年前动网那套东西的影响)

这个问题我跟很多程序员讨论过,他们认为“安全”,认为即使人家拿到库,也不知道密码,也就无从攻击你!
但是,问题就出来了,如果别人都有那个能力接触到你的库了,你认为他没有能力去直接修改你那个字段信息吗,他完全可以把那个字段信息改成一个他知道值,所以你用md5来放密码,基本没有啥意义。只是一种心理安慰罢了,周星星没事就说“你看不到我,你看不到我----”结果每次被人揍的鼻青脸肿

[/Quote]

受教了。

不过使用密文存储密码是否有另一种考虑,就是万一本站的密码泄露了,不会影响用户在其他站的密码。
比如A站的数据库被攻破了,黑客拿到了明文密码,他就有可能用明文用户名和密码去尝试登陆B站等其他网站,从而造成更大的破坏。
而如果采用密文存储,只要该密码够复杂,黑客难以获得密码明文,则可以将密码泄露的影响适当降低。
lanbiner 2009-11-14
  • 打赏
  • 举报
回复
你这样还不如直接用明码,但你的意思是要返回给用户,那么我建议你在表里建一个验证码列,一个密码问题,一个密码答案,用户忘记密码并且点了忘记密码后,回答问题,如果回答正确,那么验证码列成为可以重设密码的MD5验证串.并且让页面发送邮件一个网址加上MD5的验证到用户的邮箱.例如:http://www.域名.com/pwdno.aspx?reid=MD5加过密的验证串.

最后,用户点南邮箱里的网址会转到那个页面.
再做一个pwdno.aspx读取验证码,如果验证码正确,那么可以重设密码.

asdfa23rdadsdfa 2009-11-14
  • 打赏
  • 举报
回复
asdfa23rdadsdfa 2009-11-14
  • 打赏
  • 举报
回复
md5加密的合理性。初衷就是我上面的踢
asdfa23rdadsdfa 2009-11-14
  • 打赏
  • 举报
回复
我的主题是想讨论MD5方式加密之后,保存原始密码管理员可以更直观的还密码给用户。
wanghui0380 2009-11-14
  • 打赏
  • 举报
回复
实际上数据库里使用MD5保存用户密码是件毫无意义的事情

MD5原本是用来保证信息在传输中是否正确的验证码,但国内程序员不知何故就把他当密码存储机制了(好像是受N年前动网那套东西的影响)

这个问题我跟很多程序员讨论过,他们认为“安全”,认为即使人家拿到库,也不知道密码,也就无从攻击你!
但是,问题就出来了,如果别人都有那个能力接触到你的库了,你认为他没有能力去直接修改你那个字段信息吗,他完全可以把那个字段信息改成一个他知道值,所以你用md5来放密码,基本没有啥意义。只是一种心理安慰罢了,周星星没事就说“你看不到我,你看不到我----”结果每次被人揍的鼻青脸肿

波导终结者 2009-11-14
  • 打赏
  • 举报
回复
你不是结了吗?

安全的情况下,是不允许出现原始密码的,这样万一数据库被攻破,大部分密码也不会流出,最多只被人弄走一些6位数字的MD5

用户忘记密码有很多方式,比如用特定链接重置密码,将密码直接重置后邮件通知等等,不建议采用存明文然后管理员告知的方式。
还想懒够 2009-11-14
  • 打赏
  • 举报
回复
那加密的密码那一列毫无任何意义。

如果你能保证你的服务器的安全问题,其实明码也无妨

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧