2012-05-16 16 views
9

Come creare un semplice valore di hash? Ad esempio, ho una stringa "TechnologyIsCool" e come avere un valore hash da questa stringa?Come creare un semplice valore hash breve? C#

voglio fare un po 'metodo come:

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

    ... 

    return hashResult; 
} 

e chiamare questo metodo come:

string hash = HashThis("TechnologyIsCool"); 

e dopo che hanno hash come "5qazws".

+4

Perché non si desidera utilizzare String.GetHashCode()? – Blablablaster

+1

Sono questi compiti? –

+4

Che tipo di hash? Un hash di indicizzazione? Un hash crittografico? – Polynomial

risposta

12

Usa 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

L'hashcode può variare su diversi runtime. Alcuni avvisi validi per questa soluzione sono disponibili qui: http://stackoverflow.com/questions/1116860/whats-the-best-way-to-create-a-short-hash-similiar-to-what-tiny -url- – Magge

6

Usa GetHashCode();

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

L'hashcode può variare su diversi runtime. Alcuni avvisi validi per questa soluzione sono disponibili qui: http://stackoverflow.com/questions/1116860/whats-the-best-way-to-create-a-short-hash-similiar-to-what-tiny -url- – Magge

1

No non è possibile utilizzare String.GetHashCode() perché questo non garantisce di restituire lo stesso hash sulla stessa corda ogni volta.

+0

Cosa garantirà il ritorno dello stesso hash sulla stessa stringa ogni volta? – Smit