Tôi có hai ứng dụng, một trong Laravel 5.2 và một trong Meteor. Tôi muốn thu thập băm cho mật khẩu tương thích với cả hai nền tảng.Ghép mật khẩu Laravel & Meteor
Cơ sở dữ liệu lưu trữ băm riêng
password
cho Laravel.meteor_password
cho thiên thạch.
Cả hai nền tảng sử dụng bcrypt với 10 vòng theo mặc định, nhưng Meteor xuất hiện để sha256 mật khẩu thuần trước bcrypt.
Nếu Meteor tạo mật khẩu băm abc
, tôi có thể SHA256 mật khẩu đơn giản, và so sánh nó với abc
sử dụng internals Laravel của, ví dụ: Auth::attempt()
$sha256 = hash('sha256', $request->get('password'), false);
này hoạt động. Laravel xác thực thành công người dùng.
Tuy nhiên, nếu tôi đăng ký người dùng mới trong Laravel và lưu trữ mã băm meteor_password
, khi xác thực đối với băm đó trong Meteor, nó không thành công với thông báo lỗi "Đăng nhập bị cấm". This error appears to be mean incorrect credentials.
Tôi đang tạo hàm băm giống như cách tôi đã làm khi xác minh trong Laravel.
$meteor_password = bcrypt(hash('sha256', $plain, false));
Có vẻ lạ khi nó hoạt động theo cách này chứ không phải cách khác nên tôi cho rằng tôi đang thiếu thứ gì đó.
Phát hiện, hoạt động như mong đợi. Cảm ơn các liên kết; đọc thú vị. –
Tuyệt vời. BTW, yếu tố "chi phí" là theo cấp số nhân, vì vậy chi phí là 10, trên thực tế, (2^10 =) 1024 viên đạn, chứ không phải 10 :) – MasterAM