Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. |
Traducción
Original
|
MD5CryptoServiceProvider (Clase)
Calcula el valor de hash MD5 de los datos de entrada utilizando la implementación proporcionada por el proveedor de servicios criptográfico (CSP). Esta clase no puede heredarse.
System.Security.Cryptography.HashAlgorithm
System.Security.Cryptography.MD5
System.Security.Cryptography.MD5CryptoServiceProvider
Ensamblado: mscorlib (en mscorlib.dll)
El tipo MD5CryptoServiceProvider expone los siguientes miembros.
| Nombre | Descripción | |
|---|---|---|
|
MD5CryptoServiceProvider | Inicializa una nueva instancia de la clase MD5CryptoServiceProvider. |
| Nombre | Descripción | |
|---|---|---|
|
CanReuseTransform | Obtiene un valor que indica si la transformación actual puede reutilizarse. (Se hereda de HashAlgorithm). |
|
CanTransformMultipleBlocks | Cuando se reemplaza en una clase derivada, obtiene un valor que indica si se pueden transformar varios bloques. (Se hereda de HashAlgorithm). |
|
Hash | Obtiene el valor del código hash calculado. (Se hereda de HashAlgorithm). |
|
HashSize | Obtiene el tamaño en bits del código hash calculado. (Se hereda de HashAlgorithm). |
|
InputBlockSize | Cuando se reemplaza en una clase derivada, obtiene el tamaño del bloque de entrada. (Se hereda de HashAlgorithm). |
|
OutputBlockSize | Cuando se reemplaza en una clase derivada, obtiene el tamaño del bloque de salida. (Se hereda de HashAlgorithm). |
| Nombre | Descripción | |
|---|---|---|
|
Clear | Libera todos los recursos que utiliza la clase HashAlgorithm. (Se hereda de HashAlgorithm). |
|
ComputeHash(Byte[]) | Calcula el valor hash para la matriz de bytes especificada. (Se hereda de HashAlgorithm). |
|
ComputeHash(Stream) | Calcula el valor hash del objeto Stream especificado. (Se hereda de HashAlgorithm). |
|
ComputeHash(Byte[], Int32, Int32) | Calcula el valor hash para la región especificada de la matriz de bytes indicada. (Se hereda de HashAlgorithm). |
|
Dispose() | Libera todos los recursos usados por la instancia actual de la clase HashAlgorithm. (Se hereda de HashAlgorithm). |
|
Dispose(Boolean) | Libera los recursos no administrados que utiliza HashAlgorithm y libera los recursos administrados de forma opcional. (Se hereda de HashAlgorithm). |
|
Equals(Object) | Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object). |
|
Finalize | Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object). |
|
GetHashCode | Actúa como función hash para un tipo concreto. (Se hereda de Object). |
|
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). |
|
HashCore | Cuando se reemplaza en una clase derivada, dirige los datos escritos en el objeto al algoritmo hash para el cálculo del valor hash. (Se hereda de HashAlgorithm). |
|
HashFinal | Cuando se reemplaza en una clase derivada, finaliza el cálculo hash una vez que el objeto de flujo criptográfico termina de procesar los últimos datos. (Se hereda de HashAlgorithm). |
|
Initialize | Inicializa una instancia de MD5CryptoServiceProvider. (Invalida a HashAlgorithm.Initialize()). |
|
MemberwiseClone | Crea una copia superficial del objeto Object actual. (Se hereda de Object). |
|
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). |
|
TransformBlock | Calcula el valor hash para la región especificada de la matriz de bytes de entrada y copia la región especificada de la matriz de bytes de entrada resultante en la región indicada de la matriz de bytes de salida. (Se hereda de HashAlgorithm). |
|
TransformFinalBlock | Calcula el valor hash para la región especificada de la matriz de bytes indicada. (Se hereda de HashAlgorithm). |
| Nombre | Descripción | |
|---|---|---|
|
HashSizeValue | Representa el tamaño en bits del código hash calculado. (Se hereda de HashAlgorithm). |
|
HashValue | Representa el valor del código hash calculado. (Se hereda de HashAlgorithm). |
|
State | Representa el estado del cálculo del valor hash. (Se hereda de HashAlgorithm). |
Las funciones hash asignan cadenas binarias de una longitud arbitraria a cadenas binarias pequeñas de una longitud fija. Una función hash criptográfica tiene la propiedad de que, mediante el cálculo, no es posible encontrar dos entradas distintas que generen aleatoriamente el mismo valor; es decir, los valores hash de dos conjuntos de datos deben coincidir si los datos correspondientes también coinciden. Pequeñas modificaciones en los datos ocasionan grandes cambios imprevisibles en el valor hash.
El tamaño del valor hash de la clase MD5CryptoServiceProvider es de 128 bits.
Los métodos ComputeHash de la clase MD5CryptoServiceProvider devuelven el algoritmo hash como una matriz de 16 bytes. Observe que algunas implementaciones de MD5 generan un valor hash hexadecimal de 32 caracteres. Para interoperar con estas implementaciones, aplique formato al valor devuelto de los métodos ComputeHash como un valor hexadecimal.
En el ejemplo de código siguiente se calcula el valor de hash MD5 para data y lo devuelve.
El ejemplo de código siguiente calcula el valor hash MD5 de una cadena y devuelve el hash como una cadena hexadecimal de 32 caracteres. La cadena hash creada en este ejemplo de código es compatible con cualquier función hash MD5 (en cualquier plataforma) que cree una cadena hash hexadecimal de 32 caracteres.
using System; using System.Security.Cryptography; using System.Text; class Example { // Hash an input string and return the hash as // a 32 character hexadecimal string. static string getMd5Hash(string input) { // Create a new instance of the MD5CryptoServiceProvider object. MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider(); // Convert the input string to a byte array and compute the hash. byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input)); // Create a new Stringbuilder to collect the bytes // and create a string. StringBuilder sBuilder = new StringBuilder(); // Loop through each byte of the hashed data // and format each one as a hexadecimal string. for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } // Return the hexadecimal string. return sBuilder.ToString(); } // Verify a hash against a string. static bool verifyMd5Hash(string input, string hash) { // Hash the input. string hashOfInput = getMd5Hash(input); // Create a StringComparer an compare the hashes. StringComparer comparer = StringComparer.OrdinalIgnoreCase; if (0 == comparer.Compare(hashOfInput, hash)) { return true; } else { return false; } } static void Main() { string source = "Hello World!"; string hash = getMd5Hash(source); Console.WriteLine("The MD5 hash of " + source + " is: " + hash + "."); Console.WriteLine("Verifying the hash..."); if (verifyMd5Hash(source, hash)) { Console.WriteLine("The hashes are the same."); } else { Console.WriteLine("The hashes are not same."); } } } // This code example produces the following output: // // The MD5 hash of Hello World! is: ed076287532e86365e841e92bfc50d8c. // Verifying the hash... // The hashes are the same.
Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.