最新评论
小_金_鱼 2012-01-04 15:32
[quote]小彬:
@火星大能猫
看文章结论,明文保存的可能性不大,可能是用可逆加密算法保存的[/quote]
没有证据就想当然的认为,这样会误导很多人的。
服务端保存的是密文,用户输入密码,将加密后的密文与服务端的密文相比较,相同则登录成功,而且这个加密过程是不可逆的,如果可逆,将没有任何意义了。
香神无涯 2012-01-04 09:37
[quote]xinyu.zhang:
楼主的思路是 用户名+密码+验证码 (md5) = 哈希值 -> 服务器端验证,由于验证码每次都不相同,故服务器端无法储存静态哈希值进行验证。
可不可以这样:
服务器端储存 用户名+密码(md5) 的哈希值 (value1)
客户端输入: 用户名、密码、验证码
用户名+验证码(md5)= 哈希值 + 验证码 (md5) = 哈希值 -> 服务器
服务器端:(value1) + 验证码(md5) = 哈希值
用这两个值比较,一样则成功[/quote]
不管正确与否。
我觉得这个哥们分析的思路不错。
右丞相 2012-01-03 15:27
验证码不需要进行MD5
网络传输密码时采用密钥加密,对于网站服务器,这个加密过程是可逆的;而对于其他人,由于不知道密钥,是无法进行解密的。
而验证码的存在,正是为了防止被暴力破解,这个验证码,甚至可以在客户端生成,只要验证码不正确,程序可以不向服务器提交请求;就算验证码是在服务端生成,如果不正确,那么服务器可以不去验证密码,直接返回一个登陆失败。
验证码明文传输又能如何?每次登陆都不一样,一个登陆过程结束以后,这条验证码也就没有用了,就按普通的四个英文字母组成的验证码,也有多达45万(26的四次方)个不同的值,对付暴力破解绰绰有余。
Seariver Coding 2012-01-03 15:19
太不靠谱了,怎么得出的这个结果?照这样推理,只要使用验证码的网站,都存储的是明文!这种案例我们老师在密码学的课堂上就给我们分析过,随机验证码作为会话密钥而已,看来是楼主把自己绕进去了!
Genius Zhang 2012-01-03 13:43
[quote]寒霭:为什么验证码也要md5?[/quote]
出于安全考虑吧,因为每次验证码不同,这样传输回服务器的时候,每次传回来的MD5值也都不同,虽然密码是一样的
xinyu.zhang 2012-01-03 13:02
楼主的思路是 用户名+密码+验证码 (md5) = 哈希值 -> 服务器端验证,由于验证码每次都不相同,故服务器端无法储存静态哈希值进行验证。
可不可以这样:
服务器端储存 用户名+密码(md5) 的哈希值 (value1)
客户端输入: 用户名、密码、验证码
用户名+验证码(md5)= 哈希值 + 验证码 (md5) = 哈希值 -> 服务器
服务器端:(value1) + 验证码(md5) = 哈希值
用这两个值比较,一样则成功
