Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:24.1.2019 11:34

Ahoj komunito :)
Marně hledám nějaký způsob zakódování dat který jde rozkódovat (něco jako base64) ale potřebuji aby měl vždy stejnou délku, něco jako (crc32,adler32) a zároveň hezky vypadal, protože se bdue zobrazovat.
Bude vtom zakodované moje interní ID v databázi a nechci aby uživatel na první pohled poznal o co jde. Chci aby tam měl zobrazený nějaký kód, který bude ideálně pokaždé stejně dlouhý. A abych si to mohl rozkódovat z5 na to ID v DB. Nemáte někdo zkušenost?

Zkusil jsem:

Chci docílit:

 
Odpovědět
24.1.2019 11:34
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:25.1.2019 7:54

google = php encrypt
Pokazde stejna delka by mohl byt problem. Leda bys tam dal nejaky EOF znak + nahodne znaky na konec.
Takove jednoduche sifrovani je i XOR operace. XORem to opet desifrujes.
Nebo kodovani podle predchoziho znaku.
Nebo nedavno mne napadlo +1, -1 AZ nebo +1 -1 samohlasky, souhlasky. Dulezite je pokusi + i - to zkomplikuje desifrovani. A kdyz pouzijes samohlasky, souhlasky, to se bezne nepouziva, nemusi to nikoho napadnout. A na zaver to muzes treba jeste XORnout. Jenze XOR je snadno odhalitelny, zvysuje pocet nul nbo jednicek o 10 a vic %.

 
Nahoru Odpovědět
25.1.2019 7:54
Avatar
Palo Buzák
Člen
Avatar
Palo Buzák:1.2.2019 19:57

Co tak si nekomplikovat zivot, do tabulky pridat stlpec(s unikatnym indexom) a tam generovat nahodne znaky rovnakej dlzky? Pripadne nevidim vobec ziadny problem v tom aby si namiesto ID pouzil primarny kluc char(8) a pri pridavani tento kluc generoval nahodne.

Staci ti vzdy kontrolovat ci nahodne genrovany kluc este neexistuje co je takmer nulovy perfomance overhead.

 
Nahoru Odpovědět
1.2.2019 19:57
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Ondřej Pech
Martin Dráb:1.2.2019 21:45

To, co hledáš, se jmenuje substituční šifra – prostě máš tabulku, která převádí jednotlivé znaky na jiné. Délka šifrového a otevřeného textu je stejná. Bezpečné to není, ale zdá se mi, že tobě až tak nevadí, pokud někdo dokáže z textu dekódovat to ID (resp. k ničemu mu to nebude).

Můžeš použít i libovolnou rozumnou proudovou šifru (RC4 (ale tady je třeba být opatrný, pokud bys chtěl bezpečnost), Salsa, Chacha, Rabbit...), protože ty zachovávají délku šifrované zprávy. Nebo použít libovolnou rozumnou blokovou šifru v režimu, který z ní dělá šifru proudovou (output feedback, counter mode).

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
1.2.2019 21:45
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.