Help for English

hash code???

 

Prosím, co je to „hash code“? díky :-)

Programátoři to budou vědět…http://i­sagoksu.com/2009/de­velopment/java/what-is-hash-code/

Jestli to má i nějaký „civilní“ význam, to nevím…

Hh, to by clovek tady necekal :shock:
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 :-D 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 :-D

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 21868b3b89528­b947e75a986b07844e4).
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… :-D

(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.