Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

XORowanie

Ostatnio zmodyfikowano 2013-01-12 14:02
Autor Wiadomość
pekfos
» 2013-01-11 17:48:26
Algorytmy hashujące to jeszcze co innego.

Koniunkcje, alternatywę itd. będziesz mieć w 1. LO :)
Ale o XOR nic nie będzie :(
P-73615
ison
» 2013-01-11 18:26:25
Zaszło małe nie porozumienie, chodziło mi o algorytm tylko i wyłącznie xorujący wiadomość z czymś tam, ale może się nie mylę.
Algorytm xorujący wiadomość z kluczem to szyfr, którego nie da się złamać. (Przy założeniu, że długość klucza >= długość wiadomości i nie znasz klucza.)

Ale wtedy poco się robi algorytmy haszujące?
Hashe to funkcje skrótu, a nie szyfr. Mają zupełnie inne przeznaczenie.
P-73617
pekfos
» 2013-01-11 18:37:33
Algorytm xorujący wiadomość z kluczem to szyfr, którego nie da się złamać. (Przy założeniu, że długość klucza >= długość wiadomości i nie znasz klucza.)
A jeśli klucz to wiadomość, otrzymamy ciąg zer. Nie do złamania ;)
P-73618
ison
» 2013-01-11 18:48:38
Tak, ale jak wyślesz inną wiadomość to już nie będą same 0 ;)
P-73619
Mrovqa
» 2013-01-11 21:46:06
A jeśli klucz to wiadomość, otrzymamy ciąg zer. Nie do złamania ;)
Jaki sens ma taki klucz? :P To jest po prostu przesłanie jawnej wiadomości + ciągu zer o wielkości wiadomości.
P-73627
RazzorFlame
Temat założony przez niniejszego użytkownika
» 2013-01-11 22:27:27
Dobra, dobra POWIEDZMY że to rozumiem. Ale nie wiem jak mógłbym to wykorzystać w praktyce. Jak tego użyć. Powiedzmy ma ciąg znaków "jakies_znaki". I chciałbym to "przexorować" to jak mógłbym to zrobić?
C/C++
char * znaki = "jakies_znaki";
znaki ^= 123; //<--- przykladowa liczba
Domyślam się że przy czymś takim programik by mi sie wysypał albo komputer do naprawy? Co w tedy by się stało?
P-73634
Mrovqa
» 2013-01-12 14:02:39
C/C++
char * znaki = "jakies_znaki";
znaki ^= 123; //<--- przykladowa liczba
Domyślam się że przy czymś takim programik by mi sie wysypał albo komputer do naprawy? Co w tedy by się stało?
W tym przypadku XORujesz zawartość zmiennej znaki, która jest wskaźnikiem. Innymi słowy - niszczysz sobie zapamiętany adres znaków.
C/C++
char * znaki = "jakies_znaki";
for( char * it = znaki; * it; it++ ) * it ^= 123;

Mam nadzieję iż zrozumiesz, starałem się w miarę prosto napisać kod :)
P-73670
1 « 2 »
Poprzednia strona Strona 2 z 2