Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] potrzebuje zrobic kodowanie tylko w jedna strone, ktore bedzie trwalo ok. 5-10 sek.
AndyPSV
post 26.10.2010, 12:10:52
Post #1





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


Chodzi o to, ze mam PIN: 8 cyfrowy i musze go zakodowac w bazie w ten sposob, aby w przypadku wykradniecia bazy nie bylo mozliwe zrobienie na komputerze wszystkich mozliwych 100 000 000 kombinacji cyfr odkodowanie

musi to byc skrypt dzialajacy tylko w jedna strone, za kazdy razem zwracajacy ten sam wynik, w stylu:
  1. sha1(md5("21340594"));

tylko, ze jego sporzadzenie musi trwac znacznie dluzej
Go to the top of the page
+Quote Post
Nattfarinn
post 26.10.2010, 12:22:25
Post #2





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Cytat(AndyPSV @ 26.10.2010, 13:10:52 ) *
Chodzi o to, ze mam PIN: 8 cyfrowy i musze go zakodowac w bazie w ten sposob, aby w przypadku wykradniecia bazy nie bylo mozliwe zrobienie na komputerze wszystkich mozliwych 100 000 000 kombinacji cyfr odkodowanie

musi to byc skrypt dzialajacy tylko w jedna strone, za kazdy razem zwracajacy ten sam wynik, w stylu:
  1. sha1(md5("21340594"));

tylko, ze jego sporzadzenie musi trwac znacznie dluzej

Nie jestem pewien czy dobrze rozumiem... Co ma czas generowania hash'a do samego jego jednostronnego kodowania?


--------------------
Code should run as fast as necessary, but no faster; something important is always traded away to increase speed.
-- R. Pattis
Go to the top of the page
+Quote Post
kiler129
post 26.10.2010, 12:24:44
Post #3





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


Bardzo proste rozwiązanie - crypt()!
Generuje zawsze inny wynik ponieważ posiada mechanizm soli.

A kodowanie w jedną stronę jak to nazwałeś to hashowanie.

Ten post edytował kiler129 26.10.2010, 12:26:19


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
AndyPSV
post 26.10.2010, 15:18:38
Post #4





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


  1. Nie jestem pewien czy dobrze rozumiem... Co ma czas generowania hash'a do samego jego jednostronnego kodowania?


chodzi o to, ze jak ktos zdobedzie baze to nie odkoduje hasla

JEDNAK

ktos moze wlamac sie na serwer (stoi na innym niz serwer SQL) i zdobyc kod, dzieki czemu bedzie mogl wygenerowac petle wszystkich mozliwych kombinacji poprzez co moze zdobyc hashe do PINU
dlatego trzeba znacznie utrudnic ten krok (czas wykonywania) chyba, ze ktos ma lepsze rozwiazanie
Go to the top of the page
+Quote Post
Zyx
post 26.10.2010, 15:30:44
Post #5





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Od takich rzeczy to jest sól doklejana do hasła, a nie wydłużanie czasu działania. Nie pomyślałeś, że jak to się będzie liczyć 10 sekund, to szlag trafi Twoich użytkowników, bo Twój serwer będzie zajęty liczeniem haszów do logowania?

Ten post edytował Zyx 26.10.2010, 15:30:53


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
AndyPSV
post 26.10.2010, 19:12:29
Post #6





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


sól?

znalazlem juz rozwiazanie - po prostu inny algorytm niz haslo, ukryty
Go to the top of the page
+Quote Post
flashdev
post 26.10.2010, 19:26:42
Post #7





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Cytat(AndyPSV @ 26.10.2010, 20:12:29 ) *
sól?

znalazlem juz rozwiazanie - po prostu inny algorytm niz haslo, ukryty


Dla każdego pinu losujesz sól np. przy pomocy uniqid(). I doklejasz do hasła przed zaszyfrowaniem.

  1. $sol = uniqid();
  2. $hash = sha1($pin . $sol);
  3. // zapisz $sol, oraz $hash w bazie danych


Teraz znalezienie wszyskich możliwych kombinacji to obliczenie tego wyrażenia dla około 2,48e+26 (bardzo dużo) przypadków.

Kod
26^13 * 10^8 ~= 2,48e+26


Ten post edytował flashdev 26.10.2010, 19:32:51


--------------------
Go to the top of the page
+Quote Post
Zyx
post 26.10.2010, 21:05:40
Post #8





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Cytat
po prostu inny algorytm niz haslo, ukryty


Kolejna "genialna" myśl kryptograficzna. Za dużo science-fiction i amerykańskich filmów się naoglądałeś, bowiem jedyne miejsce na świecie, gdzie wciąż wierzą, że siła algorytmu zależy od jego tajności, jest Hollywood. Era takiej kryptografii skończyła się tymczasem ok. 1975 roku. A nie zastanowiłeś się nad tym, że jak jakiś gościu zdobędzie dostęp do bazy danych, zazwyczaj będzie też równocześnie mieć dostęp do plików strony, w tym do kodu Twojego pseudo-kryptograficznego algorytmu? Od tego jest sól.

Ten post edytował Zyx 26.10.2010, 21:06:17


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
KrzysiekWildfire
post 27.10.2010, 10:18:58
Post #9





Grupa: Zarejestrowani
Postów: 93
Pomógł: 11
Dołączył: 27.10.2010
Skąd: Kutno/Poznań

Ostrzeżenie: (0%)
-----


Nie sądzę, aby osoba która dostała się do serwera bazy danych miała problem z dostępem do serwera plików jeżeli udało jej się włamać do bazy danych. A jeżeli masz już bazę danych, to możesz zrobić wszystko (tworzenie kont administratorów, usuwanie kont, dodawanie/usuwanie treści). Najlepszym sposobem jest zastosowanie nietypowego rozwiązania przy tworzeniu hasła - wszak jeżeli ktoś nie będzie znał procesu tworzenia hasha to nie będzie w stanie złamać kodu. Chciałbym tutaj zauważyć ciekawą rzecz, jeżeli każdy tworzyłby własny sposób generowania hashow (przynajmniej próbował) to może już teraz bylibyśmy w posiadaniu algorytmu miliony razy skuteczniejszego od obecnie stosowanych.
Go to the top of the page
+Quote Post
wookieb
post 27.10.2010, 10:25:36
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(KrzysiekWildfire @ 27.10.2010, 11:18:58 ) *
Chciałbym tutaj zauważyć ciekawą rzecz, jeżeli każdy tworzyłby własny sposób generowania hashow (przynajmniej próbował) to może już teraz bylibyśmy w posiadaniu algorytmu miliony razy skuteczniejszego od obecnie stosowanych.

Mylisz się zacny Panie. Obecnie prawie każdy próbuje tworzyć jakieś własne FW (a ci co nie robią nadal żyją w śmietniku tylko że w czyimś - podpisany "marką" ZF bądź Symfony) i nie mamy w świecie PHP nic innego poza śmietnikiem.

Abstrahując od php obecnie jest dość dużo algorytmów szyfrujących i szczerze mówiąc jeżeli potrzebujesz dobrego algorytmu RSA to masz ich pod dostatkiem. Dobrego algorytmu jednostronnego? ShaX z wysokim X wystarczy.

Innym sposobem jest np zapisywanie haseł w mózgach murzynów - też jest taka opcja ale nie wiem co na to powie GIODO.


--------------------
Go to the top of the page
+Quote Post
Zyx
post 27.10.2010, 14:01:47
Post #11





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Teoretycznie jest szansa, że milion małp klepiących losowo na klawiaturze wystuka dzieła Shakespeare'a. Co Ci niby wymyśli początkujący programista, który wiedzę o krytografii czerpie z amerykańskich filmów, a jego znajomość matematyki często nie wystarcza nawet do przyzwoitego zdania matury?* Wystarczy popatrzeć, ilu ludzi próbuje bawić się w wielokrotne haszowanie i nie dociera do nich, że jest matematycznie udowodnione, że nie da się tak poprawić jakości klucza. Kryptografia i zagadnienie funkcji mieszających bazuje na ciężkiej matematyce wyższej - zajmują się tym najlepsi matematycy świata. Jeśli ktoś z ulicy byłby w stanie ich pobić, to znaczy, że sam zalicza się też do czołowych matematyków.

* - oczywiście nie chcę tu nikogo obrażać. Wśród początkujących programistów na pewno jest trochę ludzi, którzy bez problemu mogą osiągnąć dobre wyniki na maturze lub je nawet osiągnęli, ale i tak to nie jest wciąż ten poziom.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
flashdev
post 27.10.2010, 15:06:10
Post #12





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Cytat(Zyx @ 27.10.2010, 15:01:47 ) *
Teoretycznie jest szansa, że milion małp klepiących losowo na klawiaturze wystuka dzieła Shakespeare'a.
[...]


http://pl.wikipedia.org/wiki/Twierdzenie_o...ej_liczbie_małp smile.gif

Na forum przydałaby się możliwość głosowania na posty, wtedy takie posty Zyx`a możnaby zaplusować, a posty KrzysiekWildfire`a zaminusować. Wtedy osoby, które próbują się czegoś nauczyć miałyby mniej śmieci do odfiltrowania a tematy byłyby bardziej wartościowe.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 15:59