Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Kryptografia
Forum PHP.pl > Forum > Przedszkole
noche

....?nr=123
chodzi o to aby użytkownik nie widział '123' a później żeby można było odczytać 123
testowałem crypt( $string, $klucz ) ale nie mogę wrócić do pierwotnego stringa
Pyton_000
Bo niby czemu miałbyś móc odwrócić hashowanie? czytałeś dokumentacje do funkcji której chciałeś użyć?

Tu masz sposób
http://stackoverflow.com/questions/9262109...-way-encryption

albo jak chcesz prymityw to base64...
by_ikar
http://hashids.org/php/
noche
dzięki za podpowiedzi
na moje potrzeby wystarczyło to

function f_base64_encode($data) {
return str_replace( '=', '-', base64_encode($data));
}

function f_base64_decode($data) {
return str_replace( '-', '=', base64_decode($data)) ;
}
bobek358
A może bezpieczniej przekazać to w sesji skoro użytkownik nie może tego zobaczyć?
Pyton_000
Tak o ile to jesr wew. aplikacji, jeśli przychodzi z zew. to nie da rady smile.gif
bobek358
Mhm jednak autor nie stwierdził dokładnie co i jak smile.gif
nospor
Ostatnio jest jakas dziwna moda na "tajenie" rzeczy przekazywanych w url. Wczoraj ktos chcial to zrobic przez mod_rewrite.... Odnosze wrazenie, ze tutaj rowniez, jak we wczorajszym temacie, autor totalnie zle podszedl do zagadnienia. Pewnie problemem wcale nie jest "jawnosc" informacji w przegladarce ale zle rozplanowanie aplikacji i ogolne zabezpieczenie dostepu do danych sekcji przez danyc uzytkownikow.

No ale mozna tylko gdybac jak to robią Pyton i bobek wink.gif
noche
smile.gif
faktycznie brak kontekstu, jest to stronka wew. gdzie jedna osoba wprowadza dane do bazy i jest zalogowana, korzystam tutaj z sesji i POSTa
druga osoba nie ma możliwości logowania, może tylko zobaczyć wcześniej wprowadzone dane o ile dostanie link ( GET ) mailem
ten link miał na końcu numer, wystarczyło wiec zmienić numer i mamy kolejne informacje
to tak na szybko smile.gif
dzięki jeszcze raz na podpowiedzi bardzo się przydały
nospor
Dane, ktore moga byc widoczne dla osob niezalogowanych przez link, powinny zawierac jakis dluuuugi iddentyfikator, tak zeby nikt sobie nie mogl zgadnac jaki moze byc inny wazny identyfikator. Dodatkowo taki identyfikator powinien miec waznosc czasowa, np. przez 8 godzin od wyslania maila.
noche
wiem o co Ci chodzi i masz racje dlatego nie chciałem się rozpisywać bo to ciężko w paru zdaniach przedstawić smile.gif
tutaj to bardziej przypomina taki mini obieg dokumentów są osoby które generują wpisy do bazy i są osoby które tylko odczytują te dane
chodzi tez o to aby po roku mając link można było odczytać dane wpisy
gdy jest coś takiego w linku ....?nr=123 to po prostu kusi żeby zmienić na 122 tongue.gif
gdy natomiast z 123 zrobi sie 'MTIz' to już nic nie mówi smile.gif

takie dodatkowe pytanie jakich znaków specjalnych ta funkcja ( base64_encode ) używa a których nie ?
viking
Tylko a-z0-9=_
Inna sprawa że base64_decode i ktoś ma twój super link. Szybciej tu md5 pasuje z jakimś hashem ekstra.
nospor
@viking tylko ze jak on tu hash wstawi, to nie odczyta juz numeru, a on chce odczytac numer i dopiero wtedy leciec do bazy na podstawie numeru.
To co ty proponujesz to na dobra sprawe to co ja juz podalem wczesniej
noche
chodzi o prostą zmianę numeru
myślę o zmianie jakiegoś znaku na inny żeby jeszcze trochę utrudnić odczytanie tego numeru ale to może zaczekać smile.gif
md5 to pierwsze z czym się męczyłem gdy chciałem rozwiązać ten temat ale nie udało mi się tego zmienić do formy pierwotnej
poczytałem o crypt później Mcrypt ale u mnie najlepiej sprawdzi się proste rozwiązanie
Pyton_000
A może po prostu w BD do ID doklej sobie pole UUID (Generowane przez UUID() - '6ccd780c-baba-1026-9564-0040f4311e29')
Wtedy generujesz linki z tym czymś, a podczas wchodzenia w link szukasz po prostu rekordu z tym UUID zamiast ID.

zamiast UUID możesz wstawić cokolwiek, nawet sha1 czy nawet md5, bez znaczenia.
by_ikar
Zerknąłeś w ogóle na to co podesłałem? http://hashids.org/php/
noche
@by_ikar tak, dzięki a ten link

nie potrzebuje aż tak teraz kombinować ale pomysły super smile.gif

dla zainteresowanych w przyszłości poza wcześniejszymi linkami:
http://php.net/manual/en/function.uniqid.php
https://msdn.microsoft.com/en-us/library/ms187942.aspx
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.