2012-05-16 19 views
9

如何創建簡單的哈希值?例如,我有字符串「TechnologyIsCool」以及如何從這個字符串獲得散列值?如何創建簡單的短散列值? C#

我想要做一些類似的方法:

public string HashThis(string value) 
{ 
    string hashResult = string.Empty; 

    ... 

    return hashResult; 
} 

,並調用此方法,如:

string hash = HashThis("TechnologyIsCool"); 

,之後有散像 「5qazws」。

+4

爲什麼你不想使用String.GetHashCode()? – Blablablaster

+1

這是功課嗎? –

+4

什麼樣的散列?索引散列?密碼哈希? – Polynomial

回答

12

使用String.GetHashCode Method

public static void Main() 
    { 
     DisplayHashCode("Abcdei"); 
    } 

static void DisplayHashCode(String Operand) 
{ 
    int  HashCode = Operand.GetHashCode(); 
    Console.WriteLine("The hash code for \"{0}\" is: 0x{1:X8}, {1}", 
         Operand, HashCode); 
} 
+3

哈希碼可以在不同的運行時間上有所不同。一些適用於此解決方案的警告可以在這裏找到: http://stackoverflow.com/questions/1116860/whats-the-best-way-to-create-a-short-hash-similiar-to-what-tiny -url-does – Magge

6

使用GetHashCode();

public string HashThis(string value) 
{ 
    return hashResult = value.GetHashCode(); 
} 
+2

哈希碼可以在不同的運行時間上有所不同。一些適用於此解決方案的警告可以在這裏找到: http://stackoverflow.com/questions/1116860/whats-the-best-way-to-create-a-short-hash-similiar-to-what-tiny -url-does – Magge

1

不,你不能使用String.GetHashCode(),因爲這並不能保證每次都返回上相同的字符串相同的散列。

+0

什麼能保證每次都在同一個字符串上返回相同的散列? – Smit