Autor Zpráva
hanz01
Profil *
Ahoj, chtěl bych se zeptat jestli se dá částečně rozkódovat neúplný base64 string?

tzn. - "ZWNobyAiYWhvaiI7" je zakódované "ahoj"

ale pokud by případně někdo přišel a chtěl to rozkódovat ale neznal by třeba první tři písmenka kódu dostal by ztoho "ahoj" třeba jen "hoj"? Nebo je nemožné z takového stringu něco dostat?

Díky
xmark
Profil
Ano, lze to.
http://cs.wikipedia.org/wiki/Base64
hanz01
Profil *
fajn, díky.. a existuje nějaké funkce v php u které nelze neúplný řetězec rozkódovat? Tuším že asi md5 sha1 a tak, nebo jsem vedle? Nebo když přidám do md5 "sůl" tak pokud nikdo nebude znát čím sem to "osolil" tak to přece nemůže dekódovat není liž pravda?

Ještě mimo téma, loguje se někde na serveru jaké operace skript vykonává? Tím myslím jestli by bylo případně složité tu "sůl" zachytit adminitrátorem serveru. Tuším že to asi nejde, ale chtěl bych se ujistit ..
hanz01
Profil *
aha, já i neuvědomil že md5 se nedá dekódovat do původní podoby, tak to nic. Ale našel jsem ještě nějakou funkci bin2hex(); tak přes to by to snad šlo? jen jestli to není úpně to samé jako u toho base64 ..
Alphard
Profil
hanz01:
našel jsem ještě nějakou funkci bin2hex();… jen jestli to není úpně to samé jako u toho base64
Je. Zamyslete se nad tím, co ta funkce dělá. Jejím cílem rozhodně není ztráta celku kvůli pár vadným znakům.

Jestli vám jde to šifrování, podívejte se na funkce k tomu určené.
AM_
Profil
hanz01:
k čemu potřebuješ něco, co jako celek jde dekódovat a po částech ne?
je rozdíl mezi:
- funkcemi pro konverzi dat do jiného formátu (base64, hex) - pouze data přeformátují, to, že ty na obrazovce vidíš něco nečitelného, neznamená, že se něco zašifrovalo!
- funkcemi pro šifrování - šifrují data tak, aby bylo bez dešifrovacího klíče obtížné až prakticky nemožné zjistit původní data (nikdy to není teoreticky zcela nemožné!)
- hashovacími funkcemi - vytvoří jednosměrně otisk dat tak, že je prakticky nemožné zjistit původní data; pro stejná data je ale vždy otisk stejný.

To co chceš ty se dá řešit i poměrně jednoduše bez šifrování, stačí data nějak deterministicky přeházet po celém souboru, takže pokud někdo uvidí souvislý kus takto "přeházených" dat, budou to různé nesouvisející úseky z původního souboru, které zřejmě nebudou dávat moc smysl.
Raději napiš, na co to potřebuješ, je to celkem neobvyklý požadavek.
hanz01
Profil *
AM_: na co to potřebuju? chtěl jsem zašifrovat zdrojový kód tak aby se nedal rozšifrovat bez znalosti určitého klíče, což by v mém případě byl ten chybějící kus kódu na což sem se dotazoval v topicu a to bez nějakého modulu zend a podobně. Ale vidím že to asi nejde. Ale zajímalo by mě jestli by ten neúplný base64 kód bylo pro zkušeného programátora jednoduché rozširovat nebo složité? Kdyby složité tak by to byla dostatečná ochrana, stím už by si určitě tu práci nikdo nedával. Ale kdyby se to dalo rozširovat způsobem "copy & paste" tak to by bylo na nic.. ještě by mě zajímalo jak složité je rozkódovat takový "zend" kód?
..
Tím "determistickým" přeházením myslíš nějaký konkrétní druh obfuskace?? Když si to tak představím tak by přece takto nemohly fungovat určité funkce které vracejí "return", jelikož ty jsou vždycky napsány vcelku..
Alphard
Profil
hanz01:
Tím "determistickým" přeházením myslíš nějaký konkrétní druh obfuskace??
Myslím, že ne. Až teď jste zmínil, že vám jde o obfuskaci kódu, do té doby jsme se bavili obecně o stringu. AMova rada byla docela prostá, použít nějakou transpoziční šifru a při použití to dešifrovat.

Ale zajímalo by mě jestli by ten neúplný base64 kód bylo pro zkušeného programátora jednoduché rozširovat nebo složité?
Vidím to trochu jako Security through obscurity.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: