Tôi có cơ sở dữ liệu về mật khẩu băm Wordpress. Tôi đang cố gắng kiểm tra mật khẩu của người dùng đối với mật khẩu được lưu trữ cơ sở dữ liệu, nhưng các hash không chính xác. Tôi đang sử dụng this github code với một số đăng nhập isMatch()
. Bất kỳ ý tưởng nào tại sao những mật khẩu này không khớp? mật khẩu văn bản đơn giản là alberta10
Cố gắng kiểm tra băm mật khẩu wordpress bằng cách sử dụng phpass
public boolean isMatch(String password, String storedHash) {
// The first 12 digits of the hash is used to modify the encryption.
String setting = storedHash.substring(0, 12);
logger.log(Level.INFO, "----Hashed pwd from db is: "+storedHash);
logger.log(Level.INFO, "----Hashed pwd using php-pass: "+encrypt(password, setting));
return storedHash.equals(encrypt(password, setting));
}
Đây là phương pháp authenticate()
tôi
private void authenticate(String username, String password) throws Exception {
// Throw an Exception if the credentials are invalid
PasswordHasher pwdHasher=new PasswordHasher();
_logger.log(Level.INFO, "----Authenticating user: "+username);
try{
Connection conn=authenticationBiz.connWordpressDB();
String query = "SELECT * FROM wp_users WHERE user_login = ?";
PreparedStatement preparedStmt = conn.prepareStatement(query);
preparedStmt.setString(1, username);
ResultSet rs=preparedStmt.executeQuery();
rs.next();//get first result
_logger.log(Level.INFO, "----Hashed pwd from db is: "+rs.getString("user_pass"));
if(pwdHasher.isMatch(password,rs.getString("user_pass")))
return;
}
catch(Exception e){
_logger.log(Level.INFO, "----Exception in Authenticating user: "+e);
throw e;
}
throw new Exception();
}
Heres dữ liệu ghi nhận:
----Hashed pwd from db is: $P$BeatnTVG2/U8KZwpaWbPUF4yghHEKf.
17:21:40,997 INFO [com.mollom.phpass] (default task-37) ----Hashed pwd from db is: $P$BeatnTVG2/U8KZwpaWbPUF4yghHEKf.
----Hashed pwd using php-pass: $P$BeatnTVG2etvrth3rlCUdiNRm93PO9xZjXNr1f5s8izUZFfIq70V
Các băm mật khẩu không khớp vì 'PasswordHasher' từ dự án github được liên kết không sử dụng cùng một logic để băm mật khẩu như Wordpress. Tại sao bạn nghĩ rằng 'PasswordHasher' có liên quan đến nhiệm vụ của bạn? Nếu có, bạn đã thử liên hệ với tác giả của nó chưa? –
Để có cùng một logic băm mật khẩu, bạn sẽ muốn viết lại hàm WordPress 'wp_hash_password()' cho Java. Có lẽ sẽ không đưa bạn lâu đến thế. –
Mã wordpress (bằng PHP) sử dụng 'PasswordHasher' từ phppass theo điều này: https://core.trac.wordpress.org/browser/tags/4.8/src/wp-includes/pluggable.php#L0 – Rilcon42