Problem z hashem php i lua

Pytania i problemy
Mrpawelww
Mrpawelww

Witam wszystkich bardzo serdecznie, jakiś czas temu pisałem z problemem hashowania haseł itp. Szczerze? Do tej pory nie rozwiązałem tego problemu, tylko tym razem już mam łatwiej, mianowicie

    return sha256(username..";"..timestamp)
end

local function generatePasswordHash(salt, password)
    return md5(base64Encode(salt..";pseudostories_v1;"..password))
end

Powyżej jest skrypt z tworzeniem hasła w lua (silnik MTA SA) A poniżej jest mój w PHP

$user1 = "konto";
$salt1 = hash("sha256", .$user1.";1575743919");
$haslo1 = "admin";
$base = base64_encode($salt1.";pseudostories_v1;".$haslo1);
$haslo1 = md5($base);
echo $haslo1;

Chcę uzyskać to samo co jest w bazie danych przy pomocy podanych danych Hash w bazie danych: 32B3977C77DEC97980F29891679A41D7 Dostałem jeszcze informację że hasło wpisywane do panelu rejestracji (tego na serwerze) jest zapisywane dużymi literami, a przy różnych kombinacjach nie wychodzi to co powinno 😕 ktoś pomoże???

anon85678085
anon85678085

jeżeli sprawdzasz w PHP hasło, to użyj BCRYPT + password_verify, a w Lua to nwm.

Mrpawelww
Mrpawelww

chodzi mi o wygenerowanie takiego samego hasha w php jaki generuje lua, ale jedno z drugim się nie zgadza

anon85678085
anon85678085

base64_encode nie wiem po co do base64 encondujesz

Mrpawelww
Mrpawelww

bo tak informatyk który tworzył ten skrypt napisał w ten sposób, ale najlepsze jest to że wcześniej jak pisał to jeszcze szyfrował w TEA 😕 ja mam tylko stworzyć pod to panel gracza, ale problem z logowaniem dlatego proszę o pomoc w tym temacie

anon85678085
anon85678085

to samym md5() i wtedy if(md5($_POST['password']) == $HashZBazy)

Mrpawelww
Mrpawelww

dobra, to ogarnę to np. żeby

$salt = md5(salt);
$haslo = md5(haslo);
$hash = md5($salt.":".$haslo);
Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

md5 to bardzo słaby hash, zdecydowanie odradza się jego użycia, a już szczególnie samodzielnie.

Lepszym rozwiązaniem będzie zahashowanie hasła sha256, a następnie wrzucenie w bcrypt. Własny salt jest niepotrzebny, jego obsługą zajmuje się bcrypt.

Dla lua: https://github.com/mikejsavage/lua-bcrypt Dla PHP: https://www.php.net/manual/en/function.password-hash.php#refsect1-function.password-hash-examples

Na obecną chwilę zalecany cost, czy też log_rounds wynosi 12.

Mrpawelww
Mrpawelww

Dla tych co nie potrafią czytać ze zrozumieniem, ja jedynie mam zrobić panel gracza z systemem logowania w PHP i żeby osoby które rejestrują się na serwerze od razu miały dostęp do takiego panelu, czyli potrzebuję skrypt który będzie przyrównywał wygenerowany hash z tym co jest w DB, ale po napisaniu tego w PHP wychodzi mi coś innego, więc rozwodzenie się nad tym że ja mam zmienić sposób zapisywania hasła w skrypcie LUA bo coś tam jest nie potrzebne, więc jedynie o co prosiłem to o pomoc w ułożeniu tego w logiczną całość a nie rady typu "teraz się tak nie robi", "lepiej jak zrobisz inaczej" JA CHCĘ TYLKO SKRYPT LOGOWANIA PRZEROBIONY Z LUA DO PHP bo mam z tym problem. Następnym razem proszę użytkowników i moderatora forum o dokładniejsze czytanie. Mam nadzieję że ten przekaz trafi do was, i nawet jeśli dostanę bana, to liczę że ktoś się tym zainteresuje, lub ktoś pomoże. PZDR ;)

SystemZ
SystemZ Admin lvlup.pro

Korzystając z tak starej metody hashowania stwarzasz zagrożenie dla użytkowników których dane znajdą się w bazie. To powoduje że mnóstwo odpowiedzi które tu dostaniesz będą Ci to odradzać.

Mrpawelww
Mrpawelww

@SystemZ ile razy mam powtarzać że ja mam tylko zrobić panel gracza na stronie internetowej i nie obchodzi mnie to jak ktoś zabezpiecza hasło, ja mam tylko zrobić panel gracza, i powtarzam

NIE JA TWORZĘ HASHOWANIE HASEŁ TYLKO MAM ZROBIĆ SAMO LOGOWANIE BEZ REJESTRACJI POD TEN SYSTEM ZABEZPIECZENIA CO KTOŚ NAPISAŁ W LUA.

Jeżeli nawet administrator tego forum nie umie czytać ze zrozumieniem, to widać że pomocy się nie znajdzie bo każdy radzi jak zrobić coś inaczej, ale nikt nie poradzi jak zrobić POD TO co ktoś inny napisał. Następnym razem zanim zaczniecie WSZYSCY odpowiadać przeczytajcie pytanie 5, 10 nawet i w c**j tyle razy aż zrozumiecie co autor potrzebuje i z czym ma problem

anon85678085
anon85678085

Hashując hasła z pomocą md5() narażasz użytkowników na niebezpieczeństwo, md5 nie jest już używaną metodą hashowania, jest nią BCrypt lub SHA256.

Mrpawelww
Mrpawelww

Naucz się czytać ze zrozumieniem, i dopiero wtedy odpisuj @anon85678085

SystemZ
SystemZ Admin lvlup.pro

Mrpawelww:

nie obchodzi mnie to jak ktoś zabezpiecza hasło

😢 Ale jak Twoje hasło wycieknie z jakiegoś serwisu podczas gdy używasz takiego samego też w innych to już pewnie Cię zainteresuje.

Mrpawelww:

ale nikt nie poradzi jak zrobić POD TO co ktoś inny napisał

Tak, to złe rozwiązanie problemu i zagrożenie dla innych, nie ma sensu to wchodzić w zbyt długie dyskusje.

Odwoływanie się do nieczytania ze zrozumieniem jest jak dla mnie nie na miejscu gdy raczej każde obecne GPU łamie md5 w rozsądnym czasie. Jeśli chcesz md5() to najwidoczniej będziesz musiał zaimplementować to sam lub szukać forum gdzie użytkownicy są mniej zorientowani w bezpieczeństwie.

Nie, bluzgi nie pomagają w uzyskaniu odpowiedzi jakie chcesz.

Wystarczy podmienić kod w lua na taki używający lepszego hasha lub zgłosić autorom ten problem tak aby bezpieczeństwo szło do przodu, nie do tyłu.

Mrpawelww
Mrpawelww

@SystemZ od kiedy tworzenie soli gdzie jest nazwa "hasło ; username" zakodowane w sha256, do tego jest to przekodowanie do base64 "sól ; jakiś tekst ; hasło i jeszcze to wszystko do MD5 i to jest według ciebie do rozkodowania? Do tego protokół SSL zmiana hasła do bazy danych co tydzień, i do SSH każde inne? I to jest słabe zabezpieczenie. Nie chodzi mi o bluzganie w waszym kierunku, lecz jednego czego chcę to pomocy w tym co WŁAŚCICIEL tego serwera nie chce słuchać o jakichkolwiek sugestiach w których sądzi że jest najlepiej, lecz na moją prośbę zmienił bo wcześniej jeszcze wcześniej szło to przez hashowanie w TEA, więc jak tak bardzo chce w ten sposób to ja chciałbym oddać mu ten panel jak najszybciej, lecz zamiast mi tutaj pomóc w ułożeniu funkcji w logiczną całość, to każdy tylko EE TAK NIE RÓB, a ja chcę tylko zrobić ten skrypt i sajonara. Więc skoro tyle razy się upominam jaki jest cel mojej prośby i pisanie że ja do tego hashowania nie mam zdania to każdy uporczywie zamiast pomóc to wyskakuje z teoriami które nie mają najmniejszego sensu w TYM poście. Jedynie o co was proszę to o pomoc w zamienieniu tego co jest na początku (hashowanie w LUA) na hashowanie w PHP bo muszę zakodować na nowo to hasło i przyrównać do tego co jest w bazie danych. Tylko proszę o to, a jak nikt mi nie pomoże to proszę o usunięcie mojego konta na forum, oraz w bazie danych panelu użytkownika lvlup. Dziękuję i pozdrawiam

bopke
bopke Moderator forum.lvlup.pro

To wszystko co jest tutaj pisane w tym wątku można nazwać działaniem w imię niejako "klauzuli sumienia". MD5 do czegokolwiek innego niż szybkie porównania zgodności plików to decyzja bardzo zła na którymkolwiek etapie - hashowanie kilkoma funkcjami hashującymi to tylko zwiększanie ryzyka kolizji. Jako iż zmiana metody haszowania to niewielki wysiłek, to powinno być priorytetem zapewnienie jak najlepszej jakości zabezpieczania haseł. Dlatego właśnie zapewne mało kto chce z tym pomóc.

error
error

Mrpawelww:

Do tego protokół SSL zmiana hasła do bazy danych co tydzień, i do SSH każde inne? I to jest słabe zabezpieczenie.

Niestety, nie rozmawiamy tutaj o bezpieczeństwie maszyny tylko o bezpieczeństwie haseł. Nie rozmawiamy o tym, czy mają jak wycieknąć tylko co się stanie gdy już wyciekną. Nie ważne jak, może ustawisz słabe hasło, ktoś wykorzysta lukę w oprogramowaniu serwera czy jeszcze jakimś innym sposobem, ważne że wyciekną. Wtedy odzyskanie hasła będzie bardzo proste, i dlatego wiele osób nie chce Ci pomóc - po prostu jest to niebezpieczne.

Mrpawelww:

zamiast mi tutaj pomóc w ułożeniu funkcji w logiczną całość, to każdy tylko EE TAK NIE RÓB, a ja chcę tylko zrobić ten skrypt i sajonara. a) jeżeli będzie jakiś wyciek właściciel prawdopodobnie zwróci się do Ciebie jako twórcy witryny b) chce tylko zrobic skrypt i sajonara - złe podejście c) jeżeli nie wiesz jak zamienić kod w lua na kod w php, to... nie chciałbym korzystać z reszty tego panelu 🤒

system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.