Autor Zpráva
BuGeR
Profil
Zdravím.
Chtěl bych se zeptat, jestli jde nějak zjistit zda např. proměna $hash, ma format md5 nebo sha1?
Děkuji :)
AM_
Profil
md5 má 32 znaků v rozsahu 0-9a-f, SHA1 je o něco delší, nevím z hlavy, kolik.
Nox
Profil
Podle PHP manuálu 40... každopádně md5 a sha1 nejsou jediné existující algoritmy (pokud to není z tvého programu ale prostě obecně nějaký hash)
panther
Profil
stejně porovnávání nebo určování hashovací fce podle délky hashe až tak úplně přesné být nemusí. Stačí ke kratšímu md5 přidat sekvenci, třeba i náhodných, znaků (na začátek, doprostřed, na konec, ...) a rázem se tváří jako delší sha1.
AM_
Profil
panther:
nicméně otázka zněla, jak rozeznat md5 nebo sha1. A to se dá bezpečně podle délky. Pokud nakonec přidáš nějaké znaky, už to není "ve formátu" md5. Pokud měl BuGeR na mysli rozpoznání úplně neznámého hashe, pak položil otázku špatně, pokud to ale myslel tak, jak to napsal, tak není moc co řešit:)
panther
Profil
AM:
ok. Pokud to je prostý hash a má na výběr ze dvou možností, pak ano.

Jen mi přišlo fér upozornit BuGeRa na fakt, že hash nemusí být jen prostý hash :-) Že jsou i jiné hashovací funkce než tyto dvě, bylo již zmíněno výše [#3].
BuGeR
Profil
AM:
Mam namysli něco ve smyslu :
if(je_md5($hash)) { echo $hash." je md5."; } 
else if(je_sha1($hash)) { echo $hash." je sha1."; }


Jinak děkuji všem, ptám se jen tak pro zajimavost, protože píšu jeden script a napadlo mě to, ulehčilo by mi to práci :).
Nox
Profil
BuGeR:
Nevím co přesně zamýšlíš, ale pokud plánuješ mít v aplikací víc hashů, doporučoval bych to k nim prostě napsat (třeba další sloupec v db nebo nevim), bezpečnostní riziko to není
mckay
Profil
BuGeR:
Tak tady u těch funkcí to bude hodně jednoduché - použij strlen();

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0