What’s the best way to create a short hash, similar to what tiny Url does?

.NET string object has a GetHashCode() function. It returns an integer.
Convert it into a hex and then to an 8 characters long string.

Like so:

string hashCode = String.Format("{0:X}", sourceString.GetHashCode());

More on that: http://msdn.microsoft.com/en-us/library/system.string.gethashcode.aspx

UPDATE: Added the remarks from the link above to this answer:

The behavior of GetHashCode is dependent on its implementation, which
might change from one version of the common language runtime to
another. A reason why this might happen is to improve the performance
of GetHashCode.

If two string objects are equal, the GetHashCode method returns
identical values. However, there is not a unique hash code value for
each unique string value. Different strings can return the same hash
code.

Notes to Callers

The value returned by GetHashCode is platform-dependent. It differs on
the 32-bit and 64-bit versions of the .NET Framework.

Leave a Comment