Skocz do zawartości
dwd222

[INCLUDE]SHA-256 - funkcja kryptograficzna (implementacja)

Rekomendowane odpowiedzi

SHA-2 (SHA-256) jest to bezpieczny algorytm wymagany przepisami prawa do stosowania w niektórych aplikacjach rządu Stanów Zjednoczonych, w tym do stosowania w innych algorytmach kryptograficznych i protokołach w celu ochrony poufnych informacji.

Możemy stosować go jako zabezpieczenie np. przed kradzieżą haseł z bazy danych.

Pozwoliłem sobie na implementację w PAWN jednego z czterech algorytmów SHA-2 mianowicie SHA-256 zgodnie z instrukcją na stronie: http://pl.wikipedia.org/wiki/SHA-2

Użycie:

SHA_256("text") lub SHA2("text") lub SHA256("text")

Funkcja zwraca 64 znakowy cyfrowy "odcisk" wprowadzonego tekstu.

DOWNLOAD: http://solidfiles.com/d/6c0d8bd197/

Przykładowy hash dla wyrazu "pawno" to:

5e78a8bc5cfef5acac845c405674498b04818b7b24402393ec1cb65145cb946d

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Istnieją duże serwery, które prowadzą usługi i muszą jak najlepiej zabezpieczać dane. Gdyby takowe dane zostały utracone, administratorzy serwerów musieliby zwracać pieniądze graczom.

Jeśli nie masz pojęcia na dany temat i nigdy nie miałeś serwera powyżej 50 slotów to się nie odzywaj lepiej.

Pozdrawiam

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

bez urazy ale to bez sensu

nawet md5 to za duzo

po co w samp wogole szyfrowac jakie kolwiek dane? przecież one są gówno warte

Powiedzmy, że ktoś używa tego samego hasła do różnych portali, czy nawet do swojego maila lub allegro. Taka biedaczyna wchodzi na losowy serwer SA-MP gdzie poufne dane nie są w żaden sposób zabezpieczone i rejestruje swoje konto z tym hasłem. Wystarczy złośliwy admin, "haker", lub inny wyciek z bazy danych co się zdarza wbrew pozorom dosyć często i takie hasełko w czystej postaci wędruje po sieci wraz z nickiem osoby go używającej, dzięki czemu w wielu przypadkach można zidentyfikować taką osobę i uzyskać nieautoryzowany dostęp do wszystkich tych serwisów odwiedzanych przez poszkodowanego.

Nie mówię, że każdy używa tego samego hasła wszędzie ale zdarzają się takie przypadki.

Admini serwera, którzy używają odpowiedniego szyfrowania mogą spać spokojnie. Nawet jeśli ktoś zechce się dobrać do ich bazy danych to nie będzie w stanie nic z wykradzionymi danymi zrobić.

Istnieje oczywiście metoda brute-force, która pozwala na "rozszyfrowanie" takiego hasła, jednak zajmuje ona w wielu przypadkach niesamowicie dużo czasu (w zależności od długości realnego hasła).

Dopóki komputery kwantowe nie staną na naszych biurkach dopóty możemy czuć się bezpieczni używając dzisiejszych zabezpieczeń.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@UP jakie są szanse że ktoś tego będzie używać lub używa? niskie, żaden serwer, a przynajmniej ja takiego nie widziałem, nie miał nigdzie napisane że gwarantuje bezpieczeństwo moich danych, więc nawet jeśli to hasło zostanie skradzione to nikt za to odpowiedzialności nie zabierze a poszkodowanym będzie ta osoba która bezmyślnie używa swoich stałych haseł w tak niebezpiecznych miejscach, równie dobrze można by taką sytuacje porównać do nieznanych stron internetowych itp.

Jak dla mnie niezbyt potrzebne, zwłaszcza że MySQL ma wbudowane opcje hash'owania o ile się nie mylę, a jeśli ktos koniecznie chce hash'ować hasła to polecałbym raczej prostsze funkcje typu

stock udb_hash(buf[])
{
	new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n<length; n++)
    {
       s1 = (s1 + buf[n]) % 65521;
       s2 = (s2 + s1)     % 65521;
    }
    return (s2 << 16) + s1;
}

+ zdrowe myślenie programisty (ni nazywać np. w pliku hasła jako "haslo" "pass" itp.)

@Minokon zależy jakie usługi, ale sądzę że sprawy w sądzie o takie coś by nie było ...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

terminator

ten hash uzywalo pps i jak wiadomo zlamanie tego to chwila roboty

jezeli ktos ma stosowac hash'e jak ten to lepiej niech wogole odpusci sobie hashowanie hasel i niech trzma je w czystej postaci tak jak ja to robie w swojej mapce

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

md5(md5(haslo) + salt)

Kto to rozszyfruje jest wtedy dopiero nazywany dobrym hakierem.

Nie potrzeba jakiś innych niesprawdzonych funkcji.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

terminator

ten hash uzywalo pps i jak wiadomo zlamanie tego to chwila roboty

jezeli ktos ma stosowac hash'e jak ten to lepiej niech wogole odpusci sobie hashowanie hasel i niech trzma je w czystej postaci tak jak ja to robie w swojej mapce

hash który podałem zabezpiecza przed pseudo nobami co tylko na FTP się wkraść umieją ale głownie usprawnia porównywanie hasło bo wystarczy to zrobić matematycznie == a nie znak po znaku

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak na tym forum będziemy uczyć takich głupot to po co to forum w ogóle istnieje. Chyba, żeby nauczyć dobrych metod, a nie tych złych. Adler 32 to przestarzały algorytm w przypadku którego istnieje możliwość kolizji, a dokładniej spreparowania tekstu wejściowego tak, aby zwrócił on wynik sumy kontrolnej innego tekstu, np abcd = 98784689, xxxxxxx = 98784689. Stwarza to potencjalne zagrożenie. Czy chciałbyś, aby Twoja baza danych z serwera na którym gra po 120 osób dziennie znalazła się w internecie? Chyba nie, więc nie ucz tu takich głupot. Jak ktoś chce być zabezpieczony na dłuuugi okres czasu to polecam sha_512(md5(nick)+sha_256(pass)+salt), gdzie salt jest osobno przechowywane w postaci sha1(md5(salt)). Wtedy możemy czuć się bezpieczni. Wyobrażasz sobie, że np Google trzyma hasła w Adler 32? Po co lepsze zabezpieczenie. W końcu szansa, że ktoś ma do jakiegoś portalu hasło takie jak do konta picassa na google jest znikome, więc może najlepiej w plaintexcie trzymać, co? ... Bez komentarza z tym.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

eider, uwierz, że zdarzają się osoby, które maja wszędzie takie samo hasło. Wystarczy aby ktoś miał do maila takie samo i już ma dostęp do wszystkiego.

"Solenie" hashy jest ostatnio najlepszym rozwiązaniem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Najlepszym sposobem jest rzeczywiście hash + salt, ponieważ teoretycznie każda nawet najlepsza funkcja kryptograficzna da się "złamać" za pomocą rainbow tables (tęczowych tablic) poprzez funkcję skrótu, lub bazy danych z większością najbardziej prawdopodobnych kombinacji ciągu znaków.

http://pl.wikipedia.org/wiki/T%C4%99czowe_tablice

Zdaje mi się, że dane graczy z serwera SA:MP nie są aż tak ważne aby zadawać sobie tyle trudu i używać takich metod do złamania hasła, dlatego zgadzam się po części z Terminator3. Jednak uważam, że hasła powinny być zabezpieczone chociaż najzwyklejszym hashem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Maku123, pozwól, że coś Ci uświadomię:

jakie są szanse że ktoś tego będzie używać lub używa?

Nie ja uważam, że szanse na to samo hasło do wielu rzeczy jest znikome :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

hash który podałem zabezpiecza przed pseudo nobami co tylko na FTP się wkraść umieją ale głownie usprawnia porównywanie hasło bo wystarczy to zrobić matematycznie == a nie znak po znaku

jak ktoś naprawde potrafi się włamać na ftp to hash nie jest dla niego problemem

podkreślam słowo "włamać" a nie przypadkowo dostac haselko od kogos bo tak tylko się dzieje w przypadku sampa

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

może też hasło które brzmi na przykład "pawno" trochę pozmieniać, na przykład, żeby co trzecia litera była duża i do tego dodać jakieś litery na koniec, np. abcd w wyniku czego otrzymamy "PawNoabcd" i zakodować w czymkolwiek, wtedy, nawet jeśli ktoś zdekoduje nasze hasło otrzyma i tak nie prawdziwe, ale oczywiście trzeba pamiętać, że jeśli ktoś się loguje to hasło do porównania musi być zakodowane w ten sam sposób (znowu co trzecia litera duża i końcówka abcd). To też jest w miarę komplikujące prace hakerowi.

Pozdrawiam

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Moim zdaniem bardzo dobrze, że Pan dwd222 umieszcza tą funkcję. Bezpieczeństwa nigdy za wiele. Osobiście zawsze, kiedy przechowywałem hasła w jakimś Gamemode, czy skrypcie, cokolwiek - to używałem zwykłego hasha, takiego, jak wstawił Arnie, jednak w przypadku prowadzenia większego serwera, uważam, że nie dość powinno się zastosować SHA-256, ale też jakieś kombinacje z innymi hashami, czy md5, czy jak mu tam było.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×