1
在爲學校做練習時,我需要使用bcrypt正確存儲密碼(散列在數據庫中)。比較它們時,該方法總是返回false。我的代碼看起來像這樣:使用salt(bcrypt)比較哈希密碼總是返回false
註冊:
String username = editTextUsername.getText().toString();
String password = editTextPassword.getText().toString();
String hashedPW = BCrypt.hashpw(password, BCrypt.gensalt());
User user = new User(username, hashedPW);
user.save();
登錄:
String username = editTextUsername.getText().toString();
String enteredPassword = editTextPassword.getText().toString();
String hashedPW = BCrypt.hashpw(enteredPassword, BCrypt.gensalt());
User u = usercontroller.getUser(username); //gets user object
String password = u.getPassword;
BCrypt.checkpw(password, hashedPW); //always returns false
我希望有任何BCrypt優點在那裏,可能可能幫助我。 提前謝謝!
你應該從UI作爲第一個參數和第二個參數從你的商店(哈希之一)傳遞明文密碼。 – dvsakgec
我不是你正在尋找的BCrypt專業人士,但我可以想象'BCrypt.gensalt()'返回一個隨機數,每次調用它時都不相同。因此,我認爲你的散列不同,因爲如果gensalt不同的結果 – 0xDEADC0DE