Esta documentación está archivada y no tiene mantenimiento.

RIPEMD160 (Clase)

Actualización: noviembre 2007

Representa la clase abstracta desde la que se heredan todas las implementaciones del algoritmo hash MD160.

Espacio de nombres:  System.Security.Cryptography
Ensamblado:  mscorlib (en mscorlib.dll)

[ComVisibleAttribute(true)]
public abstract class RIPEMD160 : HashAlgorithm
/** @attribute ComVisibleAttribute(true) */
public abstract class RIPEMD160 extends HashAlgorithm
public abstract class RIPEMD160 extends 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.

RIPEMD-160 es una función hash criptográfica de 160 bits. Está pensado para utilizarlo como reemplazo para las funciones hash de 128 bits MD4, MD5 y RIPEMD. RIPEMD se desarrolló en el marco de trabajo del proyecto europeo RIPE (RACE Integrity Primitives Evaluation, 1988-1992).

El ejemplo de código siguiente calcula el RIPEMD160 hash para todos los archivos de un directorio.

using System;
using System.IO;
using System.Security.Cryptography;

	public class HashDirectory
	{
		// Print the byte array in a readable format.
		public static void PrintByteArray(byte[] array)
		{
			int i;
			for (i = 0; i < array.Length; i++)
			{
				Console.Write(String.Format("{0:X2}",array[i]));
				if ((i % 4) == 3) Console.Write(" ");
			}
						  Console.WriteLine();
		}

		public static void Main(String[] args)
		{
			if (args.Length < 1)
			{
				Console.WriteLine("Usage: hashdir <directory>");
				return;
			}
			try
			{
				// Create a DirectoryInfo object representing the specified directory.
				DirectoryInfo dir = new DirectoryInfo(args[0]);
				// Get the FileInfo objects for every file in the directory.
				FileInfo[] files = dir.GetFiles();
				// Initialize a RIPE160 hash object.
				RIPEMD160 myRIPEMD160 = RIPEMD160Managed.Create();
				byte[] hashValue;
				// Compute and print the hash values for each file in directory.
				foreach (FileInfo fInfo in files)
				{
					// Create a fileStream for the file.
					FileStream fileStream = fInfo.Open(FileMode.Open);
					// Compute the hash of the fileStream.
					hashValue = myRIPEMD160.ComputeHash(fileStream);
					// Write the name of the file to the Console.
					Console.Write(fInfo.Name + ": ");
					// Write the hash value to the Console.
					PrintByteArray(hashValue);
					// Close the file.
					fileStream.Close();
				}
				return;
			}
			catch (DirectoryNotFoundException)
			{
				Console.WriteLine("Error: The directory specified could not be found.");
			}
			catch (IOException)
			{
				Console.WriteLine("Error: A file in the directory could not be accessed.");
			}
		}
	}


import System.*;
import System.IO.*;
import System.Security.Cryptography.*;

public class HashDirectory
{
    // Print the byte array in a readable format.
    public static void PrintByteArray(ubyte array[])
    {
        int i;
        for (i = 0; i < array.get_Length(); i++) {
            Console.Write(String.Format("{0:X2}", array.get_Item(i)));
            if (i % 4 == 3) {
                Console.Write(" ");
            }
        }
        Console.WriteLine();
    } //PrintByteArray

    public static void main(String[] args)
    {        
        if (args.get_Length() < 1) {
            Console.WriteLine("Usage: hashdir <directory>");
            return;
        }
        try {
            // Create a DirectoryInfo object representing the specified 
            // directory.
            DirectoryInfo dir = new DirectoryInfo(args[0]);
            // Get the FileInfo objects for every file in the directory.
            FileInfo files[] = dir.GetFiles();
            // Initialize a RIPE160 hash object.
            RIPEMD160 myRIPEMD160 = RIPEMD160Managed.Create();
            ubyte hashValue[];
            FileInfo fInfo = null;
            for (int iCtr = 0; iCtr < files.get_Length(); iCtr++) {
                // Compute and print the hash values for each file in directory.
                fInfo = files[iCtr];
                // Create a fileStream for the file.
                FileStream fileStream = fInfo.Open(FileMode.Open);
                // Compute the hash of the fileStream.
                hashValue = myRIPEMD160.ComputeHash(fileStream);
                // Write the name of the file to the Console.
                Console.Write(fInfo.get_Name() + ": ");
                // Write the hash value to the Console.
                PrintByteArray(hashValue);
                // Close the file.
                fileStream.Close();
            }
            return;
        }
        catch (DirectoryNotFoundException exp) {
            Console.WriteLine("Error: The directory specified could"
                + "not be found.");
        }
        catch (IOException exp) {
            Console.WriteLine("Error: A file in the directory could not "
                + "be accessed.");
        }
    } //main
} //HashDirectory


Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0
Mostrar: