生死狙击显示输入长度不对怎么办

生死狙击显示输入长度不对怎么办

1 个回答

shenhua

提问:

密码正确显示:用户名或密码长度不高

网友回答:

应该是字打少了,重新试一下用户名或密码。

1、程序是给可以预计到的情况来写的,如果不限制长度,会很危险,包括缓存区溢出攻击:

恶意用户输入的字符串比预计的要长,在基于堆栈的语言(C++/Java)中,太长的对象可能会溢出到其他程序的区域,通过刻意构造一个字符串,可以获取程序的一部分权限。

2、太短会被破解,太长用户会忘记。

3、由于MD5将任意长度的“字节串”映射为一个128bit的大整数,而反过来由大整数破解密码很难,但是要知道,任意长度到128bit,就类似11个苹果装在10个盒子里,必然有一个盒子装了两个苹果。这就是Md5碰撞,允许过长的密码,就能够充分的找到碰撞,对于密码验证恰恰是不好的。

4、虽然是这样,不过现代的网站既然已经能够使用发帖这样的功能,说明几万字的文字是完全可以的,我猜测这个时候限制密码长度是为了提高网站的效率。明文存储要求更大的空间、发送更长的请求,hash存储时的计算量,验证时大约O(n)的复杂度等等。还是要参考第一句话:程序是给可以预计到的情况来写的。


  • 1 关注
  • 0 收藏, 浏览
  • 提出于

相似问题