laravel Hash::check 始終返回false?

Richard852555發表於2022-06-25

You’re using the wrong argument order. It’s Hash::check($input, $hash), not the other way around.

Short tinker example:

[1] > $pw = 123456;
// 123456
[2] > $hashed = Hash::make($pw);
// '$2y$10$xSugoyKv765TY8DsERJ2/.mPIOwLNdM5Iw1n3x1XNVymBlHNG4cX6'
[3] > Hash::check($hashed, $pw);
// false
[4] > Hash::check($pw, $hashed);
// true

發現測試這段程式碼 可以正常返回ture,但是把加密後的password存放到資料庫後,再拿出來,就發現總是 false了,後來才發現,Mysql的資料庫欄位長度設定的是20,加密後的字串長度超過20了,mysql居然沒有報錯,直接自動擷取20位後儲存。這就是總是返回false的原因了。

想問問 mysql 怎麼可以調整設定呢?

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章