Autor Zpráva
Fastman
Profil
Zdravím,

Chtěl bych se zeptat, jak by se dalo udělat, že pro zadané slovo se vygeneruje stejné slovo. Bohužel jsem to nikde nenašel.

Například zadám: ovoce
a výsledkem bude náhodně vygenerované slovo: owadnq

Když to zadá znova (ovoce), tak se mu znova ukáže: owadnq.

Děkuji za odpověď.
juriad
Profil
Hledáš něco jako hashovací funkci?
V php je dostupné: sha1 a starší md5.
Pro každý jeden vstup vrátí pokaždé stejný pseudonáhodný výstup. Z výstupu nelze obnovit původní vstup.
fandaa
Profil
Fastman:
Co takhle MD5 slova a odříznout čísla?
Fastman
Profil
juriad, fandaa:
Super díky! Použil jsem sha1 a teď mi to generuje například:
wdawa
na: dca42d7a83df570614e0d4045fb9f5a26925af82
nedal by se tento kód zmenšit? Omezením znaků?
juriad
Profil
Funkcí substr můžeš vybrat prvních několik znaků.
K jakému účelu to potřebuješ?

Pozn. existuje možnost, že dva různé vstupy dají stejný výstup, ale ta pravděpodobnost je extrémně malá. Možná to u funkce sha1 za dobu její existence ještě nikdy nenastalo, ale kdo ví... Je však dobré o tom vědět.
CZghost
Profil
Fastman:
Jestli chceš surová data, tak přidej parametr "true" za hashovaný řetězec. To znamená, že ti vypíše tyto znaky: ܤ-zƒßWŕÔ_ąő˘i%Ż‚

Sha1 se hodí spíše k porovnávání, než k ukazování, vrací totiž binární data, kterým člověk porozumět nedokáže. Udělej, co ti nabízí fandaa, výstup sha1 se nedá přečíst ;-)
Chro
Profil
Fastman:
Nebo http://www.php.net/manual/en/function.str-rot13.php
Jde o variantu caesarovy šifry a na webu se používá pro na první pohled nečitelné nápovědy. Neumí čísla a umí jen písmena angl. abecedy.
Fastman
Profil
CZghost, juriad:
Ok díky.
$zkraceno = substr("$sha1_data",36 );

Mám to pro identifikaci daného uživatele.
juriad
Profil
Fastman:
Lepší je:
substr($sha_data, 0, 6);

1. To $sha_data nemá být v uvozovkách; již to je řetězec.
2. Příjemnější je pracovat se začátkem výstupu. Lépe se to manuálně kontroluje. Náhodnost dat je všude v řetězci stejná, takže na tom nezáleží.
Fisir
Profil
Pouze podotknu, že existuje více hashovacích metod, které vracejí různě dlouhé hashe. Hezké srovnání je v jednom komentáři u PHP funkce hash() (a ve druhém komentáři je výkonnostní test).

Nicméně tady je to asi jedno.

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: