Portál AbcLinuxu, 7. května 2025 17:11

Dotaz: Jak si vytvořit vlastní hash

30.7.2022 17:20 Janek
Jak si vytvořit vlastní hash
Přečteno: 1037×
Odpovědět | Admin
Hezký den, neměl by někdo radu/tip jak se dá vytvořit vlastní hash? Nějaké příklady? Předem díky
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.7.2022 19:38 X
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Odpovědět | | Sbalit | Link | Blokovat | Admin
uuidgen, md5sum, base64, sha256sum.. nepises jazyk ani pouziti.
30.7.2022 20:24 Janek
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Hledám jen orientační postup, jak se taková funkce dá udělat.
30.7.2022 21:39 X
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Co si predstavujes jako hash? Funkci, ktera generuje nahodny retezec, nebo kryptografickou funkci?
30.7.2022 23:42 Janek
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Třeba tady, pokud zadám třeba: ahoj, dám generovat, dostanu
MD5 Hash: 79c2b46ce2594ecbcb5b73e928345492
Chtěl bych něco takového vytvořit pomocí vlastní funkce ale aby byl výsledek složený včetně všech znaků. které jde zadat na klávesnici.
Jendа avatar 31.7.2022 04:37 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Kryptograficky bezpečný hash vytvořit nezvládneš, ale pokud tě to zajímá ze zvědavosti, přečti si stránky s popisem MD5, SHA1, SHA2 a SHA3 na Wikipedii a následně si dohledávej všechny termíny kterým nerozumíš a klikej po referencích co tam jsou. Ale je to na dlouhé lokte a bude to chtít spoustu lineární algebry, diskrétní matematiky a podobných věcí.

Pokud je cílem jenom použít všechny dostupné znaky, tak zakóduj výstup nějaké existující hashovací funkce pomocí Base 64 nebo dokonce Base 85.

Ten výsledek MD5 jsou ve skutečnosti binární bajty, pomocí hexa se to jenom zapisuje.
1.8.2022 17:48 Xerces
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Na jaké klávesnici? US, činské, české, ...?
30.7.2022 21:28 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pozri zdrojáky. Začni md5, ta nie je veľmi rozsiahla.

A asi základ je používať také operácia, ktoré sa spätne nedajú zopakovať (ako od konca na začiatok), čiže používať binárne posuny, binárny OR/XOR a bitové invertovanie/negáciu.
debian.plus@protonmail.com
30.7.2022 23:43 Janek
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Tak zpětně jdou zopakovat všechny operace, pokud odhalíš způsob, ne?
Jendа avatar 31.7.2022 04:41 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
On tím myslel takovou tu vlastnost že to nejde pustit opačně, tj. abys k spočítanému hashi nedokázal najít vzor.
2.8.2022 16:57 kysučan | skóre: 14
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Ale opačne to pôjde spustiť vždy, tak ako píše Janek. Pri hash ale niečo také nehrozí, pretože sa tam "zahadzujú" zostatky.
Jendа avatar 31.7.2022 04:39 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Studovat šifry ze zdrojáků, navíc často velmi optimalizovaných, fakt nejde.
31.7.2022 16:49 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Nezabudni si pozriet aj RFC pre konkretne funcie.

Ak kody, tak hladaj take skor one-man show. Ten skor minimalne bude optimalizovany. Je rozdiel nieco volat 50K/s a nieco raz za sekundu. Tj. niekde nie je rychlost az tak nevyhnutne podstatne.
debian.plus@protonmail.com
1.8.2022 11:46 tttttttt
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Na https://mj.ucw.cz/vyuka/1819/kry/ jsou přednášky z Úvod do kryptografie od Martina Mareše, je tam i přednáška věnovaná hashovacím funkcím.
Blaazen avatar 3.8.2022 17:13 Blaazen | skóre: 24 | blog: BL
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ještě připomenu xxHash. Není kryptografický, ale hashuje skvěle s minimem kolizí a je extrémně rychlý.
rADOn avatar 3.8.2022 17:39 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Jak si vytvořit vlastní hash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hash je jenom velké číslo. Když se ti nelíbí zvyk vypisovat ho v hexu, není problém si ho zakódovat jinak. Např. v pythonu:
import hashlib, codecs
print(hashlib.sha1(b'aaa').hexdigest()) # jako hex
print(int.from_bytes(hashlib.sha1(b'aaa').digest(), 'little')) # jako int
print(codecs.encode(hashlib.sha1(b'aaa').digest(), 'base-64')) # v base64
Kryptografické hashe (tj. cokoliv lepsiho nez crc32) se bezne nevejdou do nativniho intu takze konverzi primo na int bezne neudelas (python je v tomhle vyjimka pacz si softwarove umi delat matematiku v neomezene presnosti) ale na vlastni kodovani ti staci brat ho jako pole bajtu a ty postupne kodovat. Akorat to asi uplne nechces delat v jazyce ktery nema nativni celocisleny typ (Javascript,Lua…).
"2^24 comments ought to be enough for anyone" -- CmdrTaco

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.