Mam dwie aplikacje, jedną w Laravel 5.2 i jedną w Meteor. Chcę zebrać skróty dla haseł, które są zgodne z obu platform.Hasło hashujące Laravel i Meteor
Baza danych przechowuje mieszań oddzielnie
password
dla laravel.meteor_password
dla Meteor.
Domyślnie obie platformy używają bcrypt z 10 rundami, ale Meteor wydaje się sha256 zwykłym hasłem przed bcrypt.
Jeśli Meteor tworzy hash hasła abc
mogę sha256 zwykły hasło, a następnie porównać je z abc
stosując wewnętrzne laravel za, tj Auth::attempt()
$sha256 = hash('sha256', $request->get('password'), false);
To działa. Laravel pomyślnie uwierzytelnia użytkownika.
Jeśli jednak zarejestruję nowego użytkownika w Laravel i przechowywam haszowanie meteor_password
, podczas uwierzytelniania przeciwko temu hashowi w Meteorzie, nie powiedzie się to z komunikatem o błędzie "Zalogowanie zabronione". This error appears to be mean incorrect credentials.
Tworzenie skrótu w taki sam sposób, jak to zrobiłem, gdy zweryfikowałem go w Laravel.
$meteor_password = bcrypt(hash('sha256', $plain, false));
Wydaje się dziwne, że zadziała w jedną stronę, a nie w drugą, więc zakładam, że czegoś brakuje.
Spot na miejscu działa zgodnie z oczekiwaniami. Dzięki za linki; interesujące czyta. –
Świetnie. BTW, czynnik "kosztowy" jest wykładniczy, więc koszt 10 jest w rzeczywistości (2^10 =) 1024 rundy, a nie 10 :) – MasterAM