RIPEMD160.Create RIPEMD160.Create RIPEMD160.Create RIPEMD160.Create Method

Définition

Crée des implémentations spécifiques de la classe RIPEMD160.Creates specific implementations of the RIPEMD160 class.

Surcharges

Create() Create() Create() Create()

Crée une instance de l'implémentation par défaut de l'algorithme de hachage RIPEMD160.Creates an instance of the default implementation of the RIPEMD160 hash algorithm.

Create(String) Create(String) Create(String) Create(String)

Crée une instance de l'implémentation spécifiée de l'algorithme de hachage RIPEMD160.Creates an instance of the specified implementation of the RIPEMD160 hash algorithm.

Create() Create() Create() Create()

Crée une instance de l'implémentation par défaut de l'algorithme de hachage RIPEMD160.Creates an instance of the default implementation of the RIPEMD160 hash algorithm.

public:
 static System::Security::Cryptography::RIPEMD160 ^ Create();
public static System.Security.Cryptography.RIPEMD160 Create ();
static member Create : unit -> System.Security.Cryptography.RIPEMD160
Public Shared Function Create () As RIPEMD160

Retours

Nouvelle instance de l'algorithme de hachage RIPEMD160.A new instance of the RIPEMD160 hash algorithm.

Exceptions

L'algorithme a été utilisé avec le mode FIPS (Federal Information Processing Standards) activé, mais il n'est pas compatible FIPS.The algorithm was used with Federal Information Processing Standards (FIPS) mode enabled, but it is not FIPS-compatible.

Exemples

L’exemple de code suivant calcule RIPEMD160 le hachage de tous les fichiers d’un répertoire.The following code example calculates the RIPEMD160 hash for all files in a directory.

using namespace System;
using namespace System::IO;
using namespace System::Security::Cryptography;

// Print the byte array in a readable format.
void PrintByteArray( array<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();
}

int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   if ( args->Length < 2 )
   {
      Console::WriteLine( "Usage: hashdir <directory>" );
      return 0;
   }

   try
   {
      
      // Create a DirectoryInfo object representing the specified directory.
      DirectoryInfo^ dir = gcnew DirectoryInfo( args[ 1 ] );
      
      // Get the FileInfo objects for every file in the directory.
      array<FileInfo^>^files = dir->GetFiles();
      
      // Initialize a RIPE160 hash object.
      RIPEMD160 ^ myRIPEMD160 = RIPEMD160Managed::Create();
      array<Byte>^hashValue;
      
      // Compute and print the hash values for each file in directory.
      System::Collections::IEnumerator^ myEnum = files->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         FileInfo^ fInfo = safe_cast<FileInfo^>(myEnum->Current);
         
         // 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( "{0}: ", fInfo->Name );
         
         // Write the hash value to the Console.
         PrintByteArray( hashValue );
         
         // Close the file.
         fileStream->Close();
      }
      return 0;
   }
   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." );
   }

}

using System;
using System.IO;
using System.Security.Cryptography;
using System.Windows.Forms;

public class HashDirectory
{

    [STAThreadAttribute]
    public static void Main(String[] args)
    {
        string directory = "";
        if (args.Length < 1)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            DialogResult dr = fbd.ShowDialog();
            if (dr == DialogResult.OK)
                directory = fbd.SelectedPath;
            else
            {
                Console.WriteLine("No directory selected.");
                return;
            }
        }
        else
            directory = args[0];
        try
        {
            // Create a DirectoryInfo object representing the specified directory.
            DirectoryInfo dir = new DirectoryInfo(directory);
            // 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);
                // Be sure it's positioned to the beginning of the stream.
                fileStream.Position = 0;
                // 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.");
        }
    }
    // 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();
    }
}
Imports System.IO
Imports System.Security.Cryptography
Imports System.Windows.Forms

Public Class HashDirectory

    Public Shared Sub Main(ByVal args() As String)
        Dim directory As String
        If args.Length < 1 Then
            Dim fdb As New FolderBrowserDialog
            Dim dr As DialogResult = fdb.ShowDialog()
            If (dr = DialogResult.OK) Then
                directory = fdb.SelectedPath
            Else
                Console.WriteLine("No directory selected")
                Return
            End If
        Else
            directory = args(0)
        End If
        Try
            ' Create a DirectoryInfo object representing the specified directory.
            Dim dir As New DirectoryInfo(directory)
            ' Get the FileInfo objects for every file in the directory.
            Dim files As FileInfo() = dir.GetFiles()
            ' Initialize a RIPE160 hash object.
            Dim myRIPEMD160 As RIPEMD160 = RIPEMD160Managed.Create()
            Dim hashValue() As Byte
            ' Compute and print the hash values for each file in directory.
            Dim fInfo As FileInfo
            For Each fInfo In files
                ' Create a fileStream for the file.
                Dim fileStream As FileStream = fInfo.Open(FileMode.Open)
                ' Be sure it's positioned to the beginning of the stream.
                fileStream.Position = 0
                ' 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()
            Next fInfo
            Return
        Catch DExc As DirectoryNotFoundException
            Console.WriteLine("Error: The directory specified could not be found.")
        Catch IOExc As IOException
            Console.WriteLine("Error: A file in the directory could not be accessed.")
        End Try

    End Sub

    ' Print the byte array in a readable format.
    Public Shared Sub PrintByteArray(ByVal array() As Byte)
        Dim i As Integer
        For i = 0 To array.Length - 1
            Console.Write(String.Format("{0:X2}", array(i)))
            If i Mod 4 = 3 Then
                Console.Write(" ")
            End If
        Next i
        Console.WriteLine()

    End Sub
End Class

Remarques

Vous ne pouvez pas créer une instance d’une classe abstraite.You cannot create an instance of an abstract class. Le code d’application crée une nouvelle instance d’une classe dérivée.Application code will create a new instance of a derived class. Pour plus d'informations, consultez la classe RIPEMD160Managed.For more information, see the RIPEMD160Managed class.

Voir aussi

Create(String) Create(String) Create(String) Create(String)

Crée une instance de l'implémentation spécifiée de l'algorithme de hachage RIPEMD160.Creates an instance of the specified implementation of the RIPEMD160 hash algorithm.

public:
 static System::Security::Cryptography::RIPEMD160 ^ Create(System::String ^ hashName);
public static System.Security.Cryptography.RIPEMD160 Create (string hashName);
static member Create : string -> System.Security.Cryptography.RIPEMD160
Public Shared Function Create (hashName As String) As RIPEMD160

Paramètres

hashName
String String String String

Nom de l'implémentation spécifique de RIPEMD160 à utiliser.The name of the specific implementation of RIPEMD160 to use.

Retours

Nouvelle instance de l'implémentation spécifiée de RIPEMD160.A new instance of the specified implementation of RIPEMD160.

Exceptions

L'algorithme décrit par le paramètre hashName a été utilisé avec le mode FIPS activé, mais il n'est pas compatible FIPS.The algorithm described by the hashName parameter was used with Federal Information Processing Standards (FIPS) mode enabled, but it is not FIPS-compatible.

Remarques

Vous ne pouvez pas créer une instance d’une classe abstraite.You cannot create an instance of an abstract class. Le code d’application crée une nouvelle instance d’une classe dérivée.Application code will create a new instance of a derived class. Pour plus d'informations, consultez la classe RIPEMD160Managed.For more information, see the RIPEMD160Managed class.

Voir aussi

S’applique à