Obecnie używam około 4 lat rozwoju, którego używam, słyszę, mówię i wdrażam tabele skrótów i funkcje skrótu. Ale tak naprawdę nigdy nie rozumiem, dlaczego nazywa się to hash?
Pamiętam pierwsze dni, kiedy zaczynałem programować, termin ten był dla mnie trochę nieporęczną terminologią . Nigdy nie zastanawiałem się, co to jest, na podstawie jego nazwy . Właśnie eksperymentalnie zrozumiałem, co robi i dlaczego i kiedy powinniśmy go użyć .
Jednak nadal czasem próbuję dowiedzieć się, dlaczego nazywa się to hash . Nie mam problemu z tabelą ani funkcją i szczerze mówiąc, są to dość dedukcyjne, racjonalne warunki. Myślę jednak, że zamiast skrótu można użyć lepszych słów, takich jak klucz lub wyjątkowość . Nie wpisuj tabeli ani tabeli wyjątkowości .
Według mojego słownika hash oznacza:
- Smażone danie z ziemniaków i mięs (wysoce nieistotne)
- # symbol (znak numeru AKA, znak funta itp.) (wciąż nieistotny, może po prostu błędna nomenklatura)
- Zastosuj algorytm do łańcucha znaków (nadal nie ma to nic wspólnego z wyjątkowością , która jest najważniejszą cechą tabeli skrótów)
- Pokroić jedzenie
- Kolejny termin na haszysz
Czy ktoś wie, dlaczego nazywa się to hash?
Odpowiedzi:
Według wikipedii odnosi się do funkcji skrótu . Jeśli chcesz pójść o krok dalej, strona wiki dla funkcji skrótu mówi, że użycie słowa „hash” w funkcji skrótu pochodzi tak:
źródło
W języku francuskim tablica skrótów nazywa się „table de hachage”, powiązany czasownik „hacher” oznacza siekać / siekać (głównie jedzenie). Czasownik
to hash
ma to samo znaczenie w języku angielskim.Tak jak inni zauważyli, nazywa się to hash, ponieważ siekasz swój wkład, który wkładasz w kawałki w różnych miejscach (wpisy w tabeli).
źródło
Numer 3 ma z tym wszystko wspólnego. Z Wikipedii :
Tak więc tabela skrótów tak naprawdę nie przechowuje wartości opartych na kluczu; przechowuje wartości na podstawie zaszyfrowanej wersji tego klucza.
źródło
tabele skrótów są nazywane w ten sposób, ponieważ używają kodu skrótu i są powiązane z „cut food”.
Pomyśl o tym w ten sposób - bierzesz swój ładny, ładny przedmiot, jak owoc, a następnie go haszujesz, aby zaczął wyglądać jak wszystko inne - tylko liczba - nie ma już w nim żadnej struktury. Ten kawałek „pokrojonego jedzenia” jest używany w tabeli mieszania, aby znaleźć ładny ładny obiekt.
Kod mieszający znajduje wiadro w tabeli, w której Twój ładny obiekt znajduje się w małej grupie innych osób z tym samym kodem mieszającym. W tej małej firmie obiekt jest sprawdzany przy użyciu funkcji sprawdzania równości - która powinna być znacznie wolniejsza niż wyszukiwanie mieszania, ale nie jest to wielka sprawa, ponieważ jest ich tylko kilka (większość innych obiektów jest już ignorowana dzięki szybkiemu skrótowi) .
źródło
Hashowanie (np. Krojenie na małe kawałki, niszczenie itp.) Wymaga wkładu (żywności lub czasem superwindykacji) i przekształca je w stosunkowo jednorodny wynik. Bez względu na to, co miałeś na początku, na końcu po prostu masz hash. I łyżka skrótu jest tak samo pomocna jak cały skrót w określaniu, co było wejściem (przy założeniu, że haszarka dobrze hashuje).
Tak więc haszowanie może zredukować dowolny jadalny lub zły przedmiot do łyżki haszu, w którym dwa różne obiekty dają różne hasze, podczas gdy dwa równe obiekty dają takie same hasze. Co oznacza, że jeśli dwie supervillainy wpadną na twoją maszynę haszującą, wystarczy porównać ich hasze, aby ustalić, czy jedna była klonem drugiej.
W pewien sposób funkcje haszujące w informatyce są trochę podobne. Biorą cały wkład o różnej wielkości i semantyce, i - po prostu wkładają - po prostu kroją go na kawałki i mieszają te wokół, a następnie wycinają powstałą sekwencję z powrotem na kawałki i mieszają to wokół i tak dalej. Na koniec masz łyżkę (n bajtów) wprowadzonego hasła.
źródło