2012-05-16 29 views
9

¿Cómo crear un valor de hash simple? Por ejemplo, tengo la cadena "TechnologyIsCool" y cómo tener el valor hash de esta cadena?¿Cómo crear un valor corto de hash simple? C#

a querer hacer algún método como:

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

    ... 

    return hashResult; 
} 

y llamar a este método como:

string hash = HashThis("TechnologyIsCool"); 

y después no tienen picadillo como "5qazws".

+4

¿Por qué no quieres usar String.GetHashCode()? – Blablablaster

+1

¿Es esta tarea? –

+4

¿Qué tipo de hash? ¿Un hash de indexación? ¿Un hash criptográfico? – Polynomial

Respuesta

12

Uso 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

El hashcode puede variar en diferentes tiempos de ejecución. Algunas advertencias que se aplican a esta solución se pueden encontrar aquí: http://stackoverflow.com/questions/1116860/whats-the-best-way-to-create-a-short-hash-similiar-to-what-tiny -url-does – Magge

6

Uso GetHashCode();

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

El código hash puede variar en diferentes tiempos de ejecución. Algunas advertencias que se aplican a esta solución se pueden encontrar aquí: http://stackoverflow.com/questions/1116860/whats-the-best-way-to-create-a-short-hash-similiar-to-what-tiny -url-does – Magge

1

No, no se puede utilizar String.GetHashCode() porque esto no garantiza que devolver el mismo hash en la misma serie cada vez.

+0

¿Qué garantizará devolver el mismo hash en la misma cadena cada vez? – Smit

Cuestiones relacionadas