Mrpawelww | 2019-12-07 20:34:04 UTC | #1
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
```local function createPasswordSalt(username, timestamp)
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 = base64encode($salt1.”;pseudostoriesv1;”.$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 :confused: ktoś pomoże???
-------------------------
anon85678085 | 2019-12-07 19:02:18 UTC | #2
jeżeli sprawdzasz w PHP hasło, to użyj BCRYPT + password_verify, a w Lua to nwm.
-------------------------
Mrpawelww | 2019-12-07 19:10:16 UTC | #3
chodzi mi o wygenerowanie takiego samego hasha w php jaki generuje lua, ale jedno z drugim się nie zgadza
-------------------------
anon85678085 | 2019-12-07 19:13:17 UTC | #4
```base64_encode``` nie wiem po co do base64 encondujesz
-------------------------
Mrpawelww | 2019-12-07 19:47:40 UTC | #5
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 :confused: ja mam tylko stworzyć pod to panel gracza, ale problem z logowaniem dlatego proszę o pomoc w tym temacie
-------------------------
anon85678085 | 2019-12-07 19:50:00 UTC | #6
to samym md5() i wtedy if(md5($_POST['password']) == $HashZBazy)
-------------------------
Mrpawelww | 2019-12-07 20:03:41 UTC | #7
dobra, to ogarnę to np. żeby
$salt = md5(salt);
$haslo = md5(haslo);
$hash = md5($salt.”:”.$haslo);
Nieznajomy11 | 2019-12-07 21:16:39 UTC | #8
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 | 2019-12-08 17:27:35 UTC | #9
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 | 2019-12-08 19:46:47 UTC | #10
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 | 2019-12-08 20:41:48 UTC | #11
@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 | 2019-12-08 20:43:19 UTC | #12
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 | 2019-12-08 20:49:14 UTC | #13
Naucz się czytać ze zrozumieniem, i dopiero wtedy odpisuj @anon85678085
SystemZ | 2019-12-08 20:51:47 UTC | #14
[quote=”Mrpawelww, post:11, topic:12901”]
nie obchodzi mnie to jak ktoś zabezpiecza hasło
[/quote]
:cry:
Ale jak Twoje hasło wycieknie z jakiegoś serwisu podczas gdy używasz takiego samego też w innych to już pewnie Cię zainteresuje.
[quote=”Mrpawelww, post:11, topic:12901”]
ale nikt nie poradzi jak zrobić POD TO co ktoś inny napisał
[/quote]
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 | 2019-12-08 21:09:23 UTC | #15
@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 | 2019-12-08 21:16:48 UTC | #16
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 | 2019-12-09 16:02:29 UTC | #17
[quote=”Mrpawelww, post:15, topic:12901”]
Do tego protokół SSL zmiana hasła do bazy danych co tydzień, i do SSH każde inne? I to jest słabe zabezpieczenie.
[/quote]
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.
[quote=”Mrpawelww, post:15, topic:12901”]
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.
[/quote]
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 :facewiththermometer:
system | 2020-01-10 16:02:31 UTC | #18
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.