2.4.4.4 Password Hash Algorithm

This Password Hash Algorithm accepts the following as parameters:

Password (Variable): An array of bytes to be obfuscated. MUST contain MBCS characters encoded using the code page specified by PROJECTCODEPAGE (section 2.3.4.2.1.5).

Key (4 Bytes): An array of 4 bytes of any value.

When comparing a new password to an old cryptographic digest, MUST be the same value as stored in the old password’s Password Hash Data Structure.Key (section 2.4.4).

The algorithm will yield PasswordHash, an array of 20 bytes.

The pseudocode for computing the hash is as follows:

 LET BytesToHash be a variable array of bytes.
  
 APPEND BytesToHash WITH Password.
  
 APPEND BytesToHash WITH Key.

SET PasswordHash TO the SHA-1 cryptographic digest of BytesToHash, as specified by [RFC3174].