3.1.1.4.1.1.1 Hashing Processing Rules
The hash to represent truncated characters is computed by rotating a 16-bit value one bit to the left and adding each character truncated from the full CN (original name) until all of the truncated characters have been exhausted, as shown in the following example hash process rule.
If the string length of the full CN is less than 52 characters in total length, the sanitized short name is the same as the full CN. Otherwise, the string base equals the first 51 characters of the full CN.
The string excess equals characters 52 through the end of the full CN. For each character that is in excess of 51, the following algorithm will be applied to hash the excess characters:
Hash is initialized with 0.
For each excess character, the following interaction is performed:
An unsigned, 16-bit integer (LowBit) is calculated by using the following formula: ((0x8000 & Hash)? 1 : 0).
The value of the hash is recalculated by using the following formula: ((Hash << 1) | LowBit) + [excess character].
Next, the resultant hash equals the decimal representation of the calculated hash. The hash is left-padded with zeros (0) to ensure that it is five characters in total length. The final, short sanitized name equals the concatenation of the string base plus a minus sign (–) plus the 5-character hash.