2017-09-01 32 views
5

我有一个散列的WordPress的密码数据库。我正在尝试根据数据库存储的密码来检查用户的密码,但哈希值不正确。我正在使用this github code,登录isMatch()。任何想法为什么这些密码不匹配?明文密码是alberta10试图检查使用phpass的wordpress密码哈希

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)); 
    } 

这里是我的authenticate()方法

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(); 
} 

继承人的日志输出:

----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 
+0

密码散列不匹配,因为来自链接的github项目的'PasswordHasher'不使用相同的逻辑散列密码为Wordpress。你为什么认为'PasswordHasher'与你的任务相关?如果是这样,你有没有尝试联系它的作者? –

+1

要获得相同的密码哈希逻辑,您需要重写Java的wp_hash_password()函数。可能不会花你那么久。 –

+0

wordpress代码(在PHP中)使用来自phppass的'PasswordHasher'根据这个:https://core.trac.wordpress.org/browser/tags/4.8/src/wp-includes/pluggable.php#L0 – Rilcon42

回答

1

WordPress使用8次哈希迭代,你git的枢纽鳕鱼链接使用15次迭代,也许你不能试着减少常量HASH_ITERATIONS中定义的哈希迭代次数。