Prosím, co je to „hash code“? díky
Prosím, co je to „hash code“? díky
Programátoři to budou vědět…http://isagoksu.com/2009/development/java/what-is-hash-code/
Jestli to má i nějaký „civilní“ význam, to nevím…
Hh, to by clovek tady necekal
No, vzhledem k tomu, ze se to neda vysvetlit bez odbornych terminu (je to hodne
z oblasti databazi a programovani), nemyslim si, ze ma cenu to vysvetlovat. Ale
pokud na vysvetleni trvate (treba se ucite s databazema nebo tak ), klidne se rozepisu,
i kdyz to se zamerenim zdejsiho webu nema vubec nic spolecneho
já se omlouvám, vím, že to asi nemá s angl. nic společného, ale narazila jsem na to v přihlášce online „Národní agentury pro evropské vzděl. programy-Comenius. Asi se to tam bude objevovat "samo“. Náhodně vygenerovaný kód nebo tak něco.Myslela jsem, jestli to slovo „hash“ má nějaký český ekvivalent.
Hash se jmenuje takový ten dvojitý křížek. Základní význam slova je např. „patlanina“ a když se to spojí s code ve významu „šifra/šifrování“…ale takovéhle „překlady“ můžou být ošemetné…
to Geo díky to by i mohlo být. Prostě je to asi nějaký náhodný zašifrovaný kod.
Hash code je vysledek hashovaci funkce. Hashovaci funkce je matematicka
funkce, jejiz definicni obor je velky, ale obor hodnot pomerne maly. Pouziva se
napriklad jako jeden z druhu adresovani, tj. ukladani a vyhledavani zaznamu
v databazich.
Pouzil jsem myslim jen stredoskolske terminy, tak by se to mozna dalo pochopit
Jeste neco si ze skoly pamatuju, tak muzu napsat, ale je to spis topic do jineho
diskuzniho fora.
to mk222: jejda, naprosto stačí. Díky
K vysvětlení od mk222 se pokusím přidat příklad typického
použití, a tím je častý „task“ jak ukládat uživatelská
hesla.
I na tomto webu registrovaní uživatelé během přihlášení spolu
s uživatelským jménem zadávají své heslo. A určitě by byli neradi,
kdyby si právě to jejich heslo někdo (např. administrátor s právy
„vidět všechno“) mohl v takové čitelné formě přečíst (a pak se
jako třeba vy přihlásit a psát do diskuse aj.). A právě v tuto chvíli
se hodí použít zmiňované hashování hesla (= aplikovat hashovací
funkci na původní heslo v čitelné podobě).
Funguje to asi takto:
Krok 1:
Při vytvoření účtu / změně hesla je aplikací výše zmíněné
„hashovací funkce“ vypočítán hash tohoto hesla (který má typicky
konstantní délku, nezávislou na skutečné délce původního
„čitelného“ hesla, typicky třeba 32 znaků), např. něco jako
21868b3b89528b947e75a986b07844e4).
Tento „nic neříkající“ řetězec znaků se zapíše do úložiště
(typicky databáze), vůči níž se ověřují uživatelské účty během
přihlašování.
Krok 2:
Při přihlášení uživatele se ze zadaného hesla spočítá (stejnou
hashovací funkcí) hash a ten se porovná, zda je stejný jako ten, který je
již uložen v úložišti uživatelských účtů (získaný krokem 1).
Může nastat:
a) hashe správného a právě zadaného hesla jsou různé → právě zadané
heslo je s jistotou nesprávné (aneb jak by vám mohlo ze stejného
textu jednou vyjít něco a jindy něco jiného – to by byla pěkně
„blbě“ zvolená hashovací funkce ).
b) hashe správného a právě zadaného hesla jsou stejné → právě zadané
heslo je s velmi vysokou pravděpodobností správné.
Celé to je založené na tom, že z původního (čitelného) hesla lze velmi snadno vytvořit jeho hash, nicméně naopak, tedy zjistit původní (čitelné) heslo z jejího hashe je prakticky nemožné. Nebo jak byste chtěli „vypočítat“, zda výše zmíněný příklad hashe vzniknul z hesla pZKudo.7, AFjmok#2 nebo toto_je_heslo?
Toto řešení ukládání hesel v „zahešované“ podobě má tu výhodu, že kdyby někdo nedejbože ukradl databázi s uževatelskými účty, jsou mu ta data k ničemu, protože pouze pomocí hashů hesel se nepřihlásí. A o to jde.
ad * – může se stát, že hashe více různých hesel budou stejné, takže pro úspěšné přihlášení by postačilo zadat libovolné takové „heslo“, které by dávalo stejný hash. Ovšem kdo by studoval obor informační bezpečnost na MatFyzu, aby měl dost teoretických znalostí, zda má vůbec cenu taková „hesla“ zkoušet hledat…
(Celé jsem to trochu zjednodušil, ale pro představu „užitečnosti hashe“ to věřím stačí.)
@Random
To uz je trosku vec jina, exituje mnoho dalsich veci, kde si hashe najdou
vyuziti, napr. kontrolni soucty..
Hlavne se ale hash code pouziva jak rika mk222.
@Washington Irving
Přesně tak. Byl jsem trochu línej počítat hash z nějakého hesla, tak
jako příklad jsem si vzal právě kontrolní součet, konkrétně odsud: http://sms.it-ccs.com/…CD-1.6.1.md5
Díky za vysvětlení. Jsou to zajímavé postupy.
Příspěvky mohou přidávat pouze přihlášení uživatelé. Pokud máte účet můžete se přihlásit.
Příspěvky v diskusi jsou majetkem jejich autorů. Provozovatel webových stránek Help For English za ně nenese zodpovědnost.