title: Compare two password hashes -- nodejs
body: <p>I am using a crypto <a href="https://nodejs.org/api/crypto.html" rel="noreferrer">https://nodejs.org/api/crypto.html</a> for password encryption and authentication. I am working on the change password page and is having problem determining whether the password provided by the user has the same hash as the existing password. Below is my code.</p>
  
  <pre><code>var createSalt = function createSalt() {
      return crypto.randomBytes(128).toString('base64');
  };
  
  var hashPwd = function hashPwd(salt, pwd) {
      var hmac = crypto.createHmac('sha256', salt);
      return hmac.update(pwd).digest('hex');
  };
  
  //use password , create salt, hash and compare with the existing
  var salt = createSalt();
  var passHash = hashPwd(salt,data.Password);
  console.log('the password is', user.PassHash === passHash);
  </code></pre>
  
  <p>I am expecting if the console message above to print true where existing user password match. However, the two hashes does not seem to match at all. Please what am i missing ? How do achieve this? I want to make sure users password match his existing password before he can change a new one. Any help would be appreciated. </p>