我有兩個應用程序,一個在Laravel 5.2中,一個在Meteor中。我想收集與這兩個平臺兼容的密碼。Laravel&Meteor密碼哈希
數據庫分別
password
存儲散列爲Laravel。meteor_password
流星。
這兩個平臺默認都使用bcrypt,默認10輪,但流星似乎在bcrypt之前使用純密碼。
如果流星創建密碼哈希abc
,我可以SHA256平原密碼,並使用Laravel的內部它abc
比較,即Auth::attempt()
$sha256 = hash('sha256', $request->get('password'), false);
這工作。 Laravel成功驗證用戶身份。但是,如果我在Laravel中註冊一個新用戶,並存儲散列meteor_password
,那麼在對Meteor中的該散列進行身份驗證時,它將失敗並顯示錯誤消息「禁止登錄」。 This error appears to be mean incorrect credentials.
我創建哈希的方式與我在Laravel中驗證哈希時的方式相同。
$meteor_password = bcrypt(hash('sha256', $plain, false));
這似乎很奇怪,它會工作的一種方式,而不是其他所以我認爲我失去了一些東西。
現貨,按預期工作。感謝您的鏈接;有趣的讀物。 –
太好了。順便說一句,「成本」因素是指數,所以10的成本實際上是(2^10 =)1024輪,而不是10 – MasterAM