colargol
14.07.2009, 13:41:31
Witam!
Jak najprościej zakodować string będący URLem lub adresem e-mail (np. www.onet.pl/12345/6789/) na inny string, tak żeby:
- nie był w posty sposób odkodowany przez usera (np. dwa adresy: wp.pl/1/ i wp.pl/2/ po zakodowaniu nie mogą się różnić jednym znakiem)
- był "spakowany", czyli zawierał mozliwie najmniejszą liczbę znaków nawet dla długich URLi
- nie było potrzeby zapisywania go do bazy (bez identyfikatorów przypisanych do URLi)
Skie
14.07.2009, 13:47:40
erix
14.07.2009, 15:20:58
Cytat
- był "spakowany", czyli zawierał mozliwie najmniejszą liczbę znaków nawet dla długich URLi
- nie było potrzeby zapisywania go do bazy (bez identyfikatorów przypisanych do URLi)
IMHO to się koliduje.
~Skie, to tylko wydłuży.
blooregard
14.07.2009, 15:49:36
Pierwsze rozwiązanie: base64_encode() / base64_decode()
Wada: średnio kumaty rozpozna, że jest to ciąg BASE64 (chocby po znakach '=' na końcu, będących dopełnieniem)
Drugie rozwiązanie: napisać własną f-cję kodującą/dekodującą
Wada: ciężko będzie Ci opracować algorytm, w którym wynikowy ciąg będzie niezależny od długości URL-a
ert16
14.07.2009, 16:14:03
Jeśli nie musisz dekodować, a tylko sprawdzać czy to ten url został zakodowany (często można sprowadzić sytuację do tego stanu) :
- MD5
- Sha1
maly_swd
14.07.2009, 17:18:29
ZIP. GZIP

- ciag sie wydluzy ale bedzie zakodowany...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.