Cytat
ale np jeśli chcę z cieawości nauczyć się pisać taki algorytm?
to najpierw dowiedz się co chcesz zrobić i do czego jest Ci to potrzebne? i czy jest sens abyś się tym zajmował
Cytat(mike)
Nie używaj zamiennie słów szyfrować i hashować bo to calkowicie inne pojęcia.
hmmm, aby na pewno...? w sumie jeszcze przed chwilą też tak mi się wydawało a potem wszedłem na
http://pl.wikipedia.org/wiki/Haszowaniezasadniczo mi się wydawało, że:
haszowanie - to funkcja skrótu która ma równomiernie i hmmm nieprzewidywalnie rozłożyć jedną dziedzinę na drugą aby stworzyć swego rodzaju etykietki (których nie nazwę identyfikatorami ze względu na fakt że funkcja nie musi być bijekcją)
szyfrowanie - to przetworzenie wartości za pomocą wykonania określonych operacji w taki sposób aby nikt niepowołany nie był w stanie odczytać wiadomości, jednak aby druga strona była do tego zdolna
jednak może haszowanie to po prostu mieszanie

nieważne czy ktoś to potem odmiesza czy nie

:P nie wnikam

jednak nie ma tutaj prostej reguły na zrobienie jednego czy drugiego:
haszowanie może opierać się na dzieleniu modulo na xor-owaniu i na wielu innych operacjach
do szyfrowania można sobie przejrzeć RSA czy 3DES jeśli nic nie pomyliłem które opierają się na zupełnie innych rzeczach
dla szyfrowania to po prostu sposób zamieszania tak żeby nikt inny niepowołany nie był w stanie odmieszać
i nie ma znaczenia którego zagadnienia matematycznego użyjesz
to nie jest jak pisanie kodu mam algorytm RSA to dorzucę 3 linijki i algorytm będzie lepszy
za całą masą dowodów i wywodów czy coś da się złamać stoją nietuzinkowe obliczenia, za sprawdzeniem poprawności prawdopodobnie sztab specjalistów... to dwa powody dla których raczej nie robi się tego samemu...
a jeśli mimo wszystko chcesz wejść w to zagadnienie to chyba zacząłbym od wikipedii i linku który podałem można tamtędy dojść do paragrafu o unikaniu kolizji i pewnie innych ciekawych rzeczy przy tego typu operacjach