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

前端 未结 13 1325
被撕碎了的回忆
被撕碎了的回忆 2020-12-04 09:10

I\'m currently using MD5 hashes but I would like to find something that will create a shorter hash that uses just [a-z][A-Z][0-9]. It only needs to be around 5-

13条回答
  •  我在风中等你
    2020-12-04 09:52

    .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.

提交回复
热议问题