PHP týden Letní akce
Pouze tento týden sleva až 80 % na kurzy PHP. Lze kombinovat s akcí Letní slevy na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!

Diskuze: Obousměrné šifrování v PHP + stejná délka šifry

Aktivity (2)
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:24. ledna 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. ledna 11:34
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:25. ledna 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. ledna 7:54
Avatar
Palo Buzák
Člen
Avatar
Palo Buzák:1. února 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 1. února 19:57
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Ondřej Pech
Martin Dráb:1. února 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í
+1 bodů
Řešení problému
Nahoru Odpovědět 1. února 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.