最近csdn,天涯,1713密码泄漏传得沸沸扬扬。所以我也在这里写写自己的看法。
我认为,用户一旦注册了某个网站,则表示对某个网站的信任。密码是否加密保存则体现了一个网站对用户的负责态度。
当然,如果网站方能保证你的用户数据库不会被盗,那么就算你明文保存也是没有任何问题的,毕竟用户登陆的时候,输入的密码就是明文(这和传输过程加密否无关),网站方要获取用户的密码那是很容易的事情。而实际上,没有任何一家网站能保证自己的用户数据库不会被泄漏,谁都不能,包括google。因为泄漏的渠道实在太多,至少包括一下几种可能:
- 被黑泄漏,这是多数人所理解的泄漏;
- 被数据库管理员泄漏;
- 被内部员工泄漏;
- 被不可抗拒的政治因素泄漏;
在8年前,我还在上大学的时候,帮某人开发一个网站,雇主要求明文保存密码,原因是便于自己查看,我说这没有必要,你要查看,可以在用户登陆的时候获取,没有必要进入数据库查看,明文保存的用户信息,一旦被泄漏,用户就要找你兴师问罪了,最终,该雇主放弃了明文保存密码的要求。
那么常用的md5加密是否真的安全,不是传说有在线可破解md5加密的么?
理论上,md5加密的字符串是不可能反向解密的,而网上的破解md5只是利用有限的库来匹配而已。也就是说该破解系统中已经保存了常用的字符串md5的结果,当你提供的md5在该库中,则可以将原来的字符串给匹配出来。反之,如果原始密码并不常见,那么则是无法反向解密的。
举一个简单的例子,这里提供一个md5之后的字符串:e10adc3949ba59abbe56e057f20f883e,其实他是字符串 123456 md5之后的结果,我们用这个字符串去“http://md5crack.com/crackmd5.php” 点击 点 Crack that hash baby,一定能“破解”得出来原密码。
可能有人会问,如果我的密码比较简单,那用上面的方法就能破解罗?
回答是肯定的,确实如此,但是任何一个网站都不可能白痴到对用户的密码只做简单的md5加密。常规的做法是在加密之前对原始密码做“加盐”处理。打个比方,您的密码是123456,网站程序会预处理处理你的字符串,如添加上你的用户名,添加上一个固定或者随机的字符串,这样在加密之前,你的123456就可能变成了 homezz_123456_cosbeta_2011_12-01_uid=***然后再md5,这个时候md5的结果就是:b699a46b0e15fedb151293a35e002d73, 您再去“http://md5crack.com/crackmd5.php”搜索看看,一定没有。 当然http://md5crack.com/crackmd5.php这个网站可以自学习,只要你输入字符串,做一次md5处理,该网站就会记录下对应关系了。
所以,md5实际上依然是无法反向解密的,除非你遇到了很白痴的站点,直接对简单的密码不做任何处理然后md5加密保存。
最近很多网站用户密码被泄漏出来,天涯,csdn,他们肯定也知道密码要加密保存的道理,但是为啥会明文,我相信每个人的猜测都不一样。