生死狙擊顯示輸入長(zhǎng)度不對(duì)怎么辦
密碼正確
顯示:用戶名或密碼長(zhǎng)度不高
應(yīng)該是字打少了,重新試一下用戶名或密碼。
1、程序是給可以預(yù)計(jì)到的情況來(lái)寫(xiě)的,如果不限制長(zhǎng)度,,會(huì)很危險(xiǎn),包括緩存區(qū)溢出攻擊:
惡意用戶輸入的字符串比預(yù)計(jì)的要長(zhǎng),在基于堆棧的語(yǔ)言(C++/java)中,,太長(zhǎng)的對(duì)象可能會(huì)溢出到其他程序的區(qū)域,通過(guò)刻意構(gòu)造一個(gè)字符串,,可以獲取程序的一部分權(quán)限,。
2、太短會(huì)被破解,,太長(zhǎng)用戶會(huì)忘記,。
3、由于MD5將任意長(zhǎng)度的“字節(jié)串”映射為一個(gè)128bit的大整數(shù),,而反過(guò)來(lái)由大整數(shù)破解密碼很難,,但是要知道,任意長(zhǎng)度到128bit,,就類似11個(gè)蘋(píng)果裝在10個(gè)盒子里,,必然有一個(gè)盒子裝了兩個(gè)蘋(píng)果。這就是Md5碰撞,,允許過(guò)長(zhǎng)的密碼,,就能夠充分的找到碰撞,對(duì)于密碼驗(yàn)證恰恰是不好的,。
4,、雖然是這樣,不過(guò)現(xiàn)代的網(wǎng)站既然已經(jīng)能夠使用發(fā)帖這樣的功能,,說(shuō)明幾萬(wàn)字的文字是完全可以的,,我猜測(cè)這個(gè)時(shí)候限制密碼長(zhǎng)度是為了提高網(wǎng)站的效率。明文存儲(chǔ)要求更大的空間,、發(fā)送更長(zhǎng)的請(qǐng)求,,hash存儲(chǔ)時(shí)的計(jì)算量,,驗(yàn)證時(shí)大約O(n)的復(fù)雜度等等。還是要參考第一句話:程序是給可以預(yù)計(jì)到的情況來(lái)寫(xiě)的,。
有可能是打少了重新試一下
重來(lái)調(diào)整一下
可以重新進(jìn)行調(diào)試的
那就要重新來(lái)做的,。