Odp.: RE: CRC, hash, urceni jak se pocita
Jan Waclawek
konfera@efton.sk
Úterý Srpen 25 22:06:56 CEST 2009
Tak nikto? ;-)
Na www.efton.sk/tmp/csum.pas je zdrojak toho programceka.
Algoritmus je (p0+01) * (p1+12) * (p2+23) * (p3+34) * ... atd.
p0, p1, p2... su prve, druhe, tretie atd. pismeno resp. ich ASCII hodnota. Pozor, prve pismeno je implicitne p0='/' (imituje sa tam aj filesystem). To nasobenie v skutocnosti nie je celkom nasobenie, ale je to nasobenie 16 bit * 16 bit, a potom sa z vyslednych 32 bit zoberie hornych 16 bit a pripocita k dolnym.
To, co sa pricita, sa pre kazde dalsie pismeno zvysuje o 11; nie som si vsak isty, co sa stane pre velmi vela pismen, ked ten sucet presiahne 8 resp. 16 bitov, tak si to este odskusajte.
Predpokladam, ze ten prvy "index.html" nebol v "roote", a tym sa dosiahla rozdielna checksuma.
>da se odhadnout jak je ten algoritmus odolny proti vygenerovani stejneho
>checksumu pro rozdilne nazvy?
No, z principu to ma nejake nedostatky, napr. "wek" a "plk" ma tu istu checksumu, teraz je otazne, nakolko to je relevantne :-D
>proc autor pouzil tak sileny postup, proc tam nema
>jmeno?
Zrejme preto, lebo a) vyhol sa tym skutocnemu filesystemu; b) vyhol sa tym problemom s potencialne donekonecna nafukovatelnym menom.
wek
PS. Odmena... Vyriesme to tak, ze poslete flasku panovi kolegovi Trollerovi, lebo uprmine povedane, kym nenapisal ten nastrel, tapal som v kalnych vodach CRC a uz som to chcel vzdat. Takze mu patri tak zhruba polovica tej flasky, a ked sa s nim stretnem, tak mi potom tu dlznu pol flasku da :-)
----- Original Message ---------------
>zkousel jsem to na par divnych nazvech a opravdu to asi chodi v pohode.
>da se odhadnout jak je ten algoritmus odolny proti vygenerovani stejneho
>checksumu pro rozdilne nazvy?
>a hlavne netusi nekdo proc autor pouzil tak sileny postup, proc tam nema
>jmeno?
>
>Pavel
>
>
>----- Original Message -----
>From: "Jan Waclawek" <konfera@efton.sk>
>To: "HW-news" <hw-list@list.hw.cz>
>Sent: Monday, August 24, 2009 8:05 PM
>Subject: Re: Odp.: RE: CRC, hash, urceni jak se pocita
>
>
>No tak zhruba to mam, ale ozaj len zhruba. Nechcem vsak pokazit zabavu
>ostatnym :-P
>
>Na www.efton.sk/tmp/csum.exe je kratky programcek ktory pocita tu checksumu.
>Nie je to len "if input="a" then print "70 14" ;-) . Mozete si vyskusat, ci
>to sedi pre e, f, g, atd.; predpokladam, ze do tych 3 pismen to bude sediet.
>
>Pre index.html mi to nesedi, takze by som poprosil i, in, ind, inde, atd. az
>kym sa to nezacne rozchadzat.
>
>wek
>
>
>----- Original Message ---------------
>>Hmmm, teda vyzera to na nejake krat-plus. Povedal by som, ze pismena do
>>algoritmu vstupuju sprava. Plati aj bb-ba = bc-bb = b = 0x14a0 = 110*48.
>>
>>> K aac je pøedem nutno
>>>pøièíst 65535 (èekal bych, ¾e to bude 65536, ale není).
>>
>>To je zrejme preto, lebo tym pricitanim medzi aab a aac nastalo pretecenie,
>>takze do "plus" vstupuje aj carry.
>>
>>wek
>>
>>
>>
>>----- Original Message ---------------
>>
>>> > > a 70 14
>>>> > > b A0 14
>>>> > > c D0 14
>>>> > > index.html A0 F4
>
Další informace o konferenci Hw-list