4.3 Encrypting an NT or LM Hash

The following example shows actual values for the cleartext passwords and password hashes as well as the key derivations necessary to apply [FIPS81].

  • Old password is "OLDPASSWORD".

    LM hash of "OLDPASSWORD":

     c9 b8 1d 93 9d 6f d8 0c d4 08 e6 b1 05 74 18 64
    

    NT hash of "OLDPASSWORD":

     66 77 b2 c3 94 31 13 55 b5 4f 25 ee c5 bf ac f5
    
  • New password is "NEWPASSWORD".

    LM hash of "NEWPASSWORD":

     09 ee ab 5a a4 15 d6 e4 d4 08 e6 b1 05 74 18 64
    

    NT hash of "NEWPASSWORD":

     25 67 81 a6 20 31 28 9d 3c 2c 98 c1 4f 1e fc 8c
    

To demonstrate sample data values for the 7-byte InputKey and 8-byte OutputKey used in section 2.2.11.1.2, the following values are used for the encryption of the old NT hash with the new NT hash shown above.

  1. Split the NT hash of the old password into two blocks (2.2.11.1.1).

     Block 1: 66 77 b2 c3 94 31 13 55
     Block 2: b5 4f 25 ee c5 bf ac f5
    
  2. Split the NT hash of the new password into two blocks (2.2.11.1.1).

     Block 1: 25 67 81 a6 20 31 28 9d
     Block 2: 3c 2c 98 c1 4f 1e fc 8c
    
  3. The 7-byte keys are derived as stated in section 2.2.11.1.4 using the 16-byte hash value. Apply the algorithm in section 2.2.11.1.2 to transform the 7-byte key into an 8-byte key.

     7 byte InputKey for block 1:  25 67 81 a6 20 31 28
     8 byte OutputKey for block 1: 25 b3 e0 34 62 01 c4 51
      
     7 byte InputKey for block 2:  9d 3c 2c 98 c1 4f 1e
     8 byte OutputKey for block 2: 9d 9e 0b 92 8c 0b 3d 3d
    
  4. Apply [FIPS81] to encrypt both blocks using these keys.

    OldNtOwfEncryptedWithNewNt:

     da 39 84 64 27 f5 e6 c9 48 2c 8f e9 b3 3a 16 07
    

Likewise, the following values are used for encryption of the old LM hash with the new NT hash.

  1. Split the LM hash of the old password into two blocks (2.2.11.1.1).

     Block 1: c9 b8 1d 93 9d 6f d8 0c
     Block 2: d4 08 e6 b1 05 74 18 64
    
  2. As before, split the NT hash of the new password into two blocks (2.2.11.1.1).

     Block 1: 25 67 81 a6 20 31 28 9d
     Block 2: 3c 2c 98 c1 4f 1e fc 8c
      
     7 byte InputKey for block 1:  25 67 81 a6 20 31 28
     8 byte OutputKey for block 1: 25 b3 e0 34 62 01 c4 51
      
     7 byte InputKey for block 2:  9d 3c 2c 98 c1 4f 1e
     8 byte OutputKey for block 2: 9d 9e 0b 92 8c 0b 3d 3d
    
  3. Apply [FIPS81] to encrypt both blocks using these keys.

    OldLmOwfEncryptedWithNewNt:

     80 45 7a 72 72 5a 37 9c ed 8b 07 d2 fd 6f 46 ff