Các bác cho em hỏi là khi mà hash pass sử dụng Bcrypt thì em gặp trường hợp là mỗi lần hash nó lại cho ra chuỗi khác nhau, lần đầu nhập đăng kí vào thì nó hash ra một chuỗi rồi em lưu vào database, sau đó lúc đăng nhập thì nó lại hash ra một chuỗi khác không giống với database, em xin cách khắc phục ạ.
Hash pass trong java
Bạn ơi, up đoạn code bạn hash password lên cho mình xem với bạn, mình cũng đang làm cái này, với lại cho mọi người dễ hỗ trợ nữa !
Hiển nhiên là chuỗi hash của cậu sẽ khác nhau nếu cậu sử dụng Bcrypt rồi Thành Đó là design của Bcrypt.
Theo wiki:
For example, the shadow password record
$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
specifies a cost parameter of 10, indicating 210 key expansion rounds. The salt isN9qo8uLOickgx2ZMRZoMye
and the resulting hash isIjZAgcfl7p92ldGxad68LJZdL17lhWy
. Per standard practice, the user’s password itself is not stored.
Các thành phần của hashed password bằng bcrypt ở đây:
$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
| | | |___ the hash
| | |__ the salt
| |__ the cost parameter
|___ the version
Để so sánh Bcrypt password, thường thì thư viện Bcrypt mà cậu dùng sẽ có hàm compare hash hay gì đó tương tự. Cậu nên đọc kỹ document và cách sử dụng thư viện đó của cậu.
Vâng cảm ơn ạ mình làm được rồi
Nó đang làm đúng mà. đừng nói là đang muốn hash ra chuỗi giống y rồi so dưới db nhé :v