Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Losowy ciąg
Forum PHP.pl > Forum > Przedszkole
thepiotr
Cześć.
A więc chodzi mi o losowanie ciągu i mam pytanie czy skrypt spot tego linku:
http://www.phpshare.org/scripts/Random-String-Generator
poradzi sobie z tym abyciąg się nie powtarzał, a jeśli jest jakaś lepsza funkcja proszę o odpowiedź biggrin.gif
Pyton_000
sha1(time()) lub inne tego typu rozwiązanie (wykluczając md5)

i do czego to chcesz?
thepiotr
Potrzebne będzie to do skryptu który skraca linki np. php.pl -> domena.pl/skrypt.php?tuciąg
phpion
Może uniqid?
Pyton_000
Wrzuć link do skrócenia do sha1() i po kłopocie smile.gif
thepiotr
Dzięki. Jeszcze mam jedno pytanie czy dla kodu sha może być np. Parę rozwiązań tzn kod sha jest np. Awtjd a to po odkodowaniu znaczy tyle co php.pl albo google.com.
Podobno w md5 było takie przypadki a to jak dla mnie nie wchodzi w grę chociaż by był to wyjątek występowania tego jeden na milion
b4rt3kk
Cytat(thepiotr @ 18.02.2015, 14:25:34 ) *
Dzięki. Jeszcze mam jedno pytanie czy dla kodu sha może być np. Parę rozwiązań tzn kod sha jest np. Awtjd a to po odkodowaniu znaczy tyle co php.pl albo google.com.
Podobno w md5 było takie przypadki a to jak dla mnie nie wchodzi w grę chociaż by był to wyjątek występowania tego jeden na milion


Jeśli próbujesz stworzyć skrypt do skracania linków, to generowanie hasha z linku to kiepski pomysł. Bo i po co to robić? Wystarczy, że zapiszesz link do bazy, a wystawisz userowi skrót.

W teorii sha, md5, itd. mają być jednostronne... więc co tu piszesz o odkodowywaniu? Jest to możliwe, ale po co?
thepiotr
No tak chodzi mi o to by zrobić jakąś funkcję na skrót ale by się ten skrót nie powtarzał (dlatego napisałem o odkodowaniu), bo później może być problem że są dwie różne domeny a skrót ten sam.. A wiem że jest to możliwe dlatego w takim forum np. Mybb jest stosowane salt do hasła (http://pl.m.wikipedia.org/wiki/Tęczowe_tablice)
Crozin
Mylisz trochę zagadnienia. Sól nie ma tutaj akurat nic do rzeczy.

Tak, dla każdej funkcji skrótu, może dojść do sytuacji gdzie HASH(A) == HASH(cool.gif, ale:
1) prawdopodobieństwo jest bardzo, bardzo małe - dla MD5 jest to 1 : 2^128, a dla takiego SHA512 1 : 2^512 - są to naprawdę niezwykle małe wartości,
2) zawsze przecież możesz sprawdzać dla pełni bezpieczeństwa czy aby przypadkiem wygenerowany skrót już nie jest wykorzystywany.

Do skrócania linków będziesz pewnie chciał wykorzystać jakiś losowy, unikalny (patrz: pkt #2) i w miarę krótki ciąg, zapewne zapisany w Base64 czy nawet Base85.
Pyton_000
Wystarczy tak na prawdę:

- Sprawdzić czy adres jest w bazie, jak tak to wypluć skrót
- jak nie ma to przepuścić go przez crypt() i obciąć do xxx znaków
- sprawdzić czy jest hash w bazie to jeszcze raz zakodować, obciąć i znowu sprawdzić.
- Jak nie ma to zapisujesz i koniec.

Nie ważne jakiego hashowania uzyjesz.
thepiotr
Ok, dzięki jak napotkam jakiś problem w związku z tym jeszcze tu napiszę smile.gif
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.