RIPEMD160 Kelas

Definisi

Mewakili kelas abstrak dari mana semua implementasi algoritma hash MD160 mewarisi.

public ref class RIPEMD160 abstract : System::Security::Cryptography::HashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class RIPEMD160 : System.Security.Cryptography.HashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type RIPEMD160 = class
    inherit HashAlgorithm
Public MustInherit Class RIPEMD160
Inherits HashAlgorithm
Warisan
RIPEMD160
Turunan
Atribut

Contoh

Contoh kode berikut menghitung RIPEMD160 hash untuk semua file dalam direktori.

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

Keterangan

Fungsi hash memetakan string biner dengan panjang arbitrer ke string biner kecil dengan panjang tetap. Fungsi hash kriptografi memiliki properti yang secara komputasi tidak layak untuk menemukan dua input berbeda yang hash ke nilai yang sama; artinya, hash dari dua set data harus cocok jika data yang sesuai juga cocok. Perubahan kecil pada data menghasilkan perubahan besar yang tidak dapat diprediksi dalam hash.

RIPEMD-160 adalah fungsi hash kriptografi 160-bit. Ini ditujukan untuk digunakan sebagai pengganti fungsi hash 128-bit MD4, MD5, dan RIPEMD. RIPEMD dikembangkan dalam kerangka proyek Uni Eropa RIPE (RACE Integrity Primitives Evaluation, 1988-1992).

Catatan

RIPEMD160 telah digantikan oleh Algoritma Hash Aman SHA-256 dan SHA-512 dan kelas turunannya. SHA256 dan SHA512 menawarkan keamanan dan performa yang lebih baik daripada RIPEMD160. Gunakan RIPEMD160 hanya untuk kompatibilitas dengan aplikasi dan data lama.

Konstruktor

RIPEMD160()

Menginisialisasi instans baru kelas RIPEMD160.

Bidang

HashSizeValue

Mewakili ukuran, dalam bit, dari kode hash komputasi.

(Diperoleh dari HashAlgorithm)
HashValue

Mewakili nilai kode hash komputasi.

(Diperoleh dari HashAlgorithm)
State

Mewakili status komputasi hash.

(Diperoleh dari HashAlgorithm)

Properti

CanReuseTransform

Mendapatkan nilai yang menunjukkan apakah transformasi saat ini dapat digunakan kembali.

(Diperoleh dari HashAlgorithm)
CanTransformMultipleBlocks

Ketika ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah beberapa blok dapat diubah.

(Diperoleh dari HashAlgorithm)
Hash

Mendapatkan nilai kode hash komputasi.

(Diperoleh dari HashAlgorithm)
HashSize

Mendapatkan ukuran, dalam bit, dari kode hash komputasi.

(Diperoleh dari HashAlgorithm)
InputBlockSize

Ketika ditimpa di kelas turunan, mendapatkan ukuran blok input.

(Diperoleh dari HashAlgorithm)
OutputBlockSize

Ketika ditimpa di kelas turunan, mendapatkan ukuran blok output.

(Diperoleh dari HashAlgorithm)

Metode

Clear()

Merilis semua sumber daya yang HashAlgorithm digunakan oleh kelas .

(Diperoleh dari HashAlgorithm)
ComputeHash(Byte[])

Menghitung nilai hash untuk array byte yang ditentukan.

(Diperoleh dari HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)

Menghitung nilai hash untuk wilayah yang ditentukan dari array byte yang ditentukan.

(Diperoleh dari HashAlgorithm)
ComputeHash(Stream)

Menghitung nilai hash untuk objek yang ditentukan Stream .

(Diperoleh dari HashAlgorithm)
ComputeHashAsync(Stream, CancellationToken)

Secara asinkron menghitung nilai hash untuk objek yang ditentukan Stream .

(Diperoleh dari HashAlgorithm)
Create()

Membuat instans implementasi RIPEMD160 default algoritma hash.

Create(String)

Membuat instans implementasi RIPEMD160 algoritma hash yang ditentukan.

Dispose()

Merilis semua sumber daya yang digunakan oleh instans HashAlgorithm kelas saat ini.

(Diperoleh dari HashAlgorithm)
Dispose(Boolean)

Merilis sumber daya tidak terkelola yang digunakan oleh HashAlgorithm dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari HashAlgorithm)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
HashCore(Byte[], Int32, Int32)

Saat ditimpa di kelas turunan, merutekan data yang ditulis ke objek ke dalam algoritma hash untuk menghitung hash.

(Diperoleh dari HashAlgorithm)
HashCore(ReadOnlySpan<Byte>)

Merutekan data yang ditulis ke objek ke dalam algoritma hash untuk menghitung hash.

(Diperoleh dari HashAlgorithm)
HashFinal()

Ketika ditimpa di kelas turunan, menyelesaikan komputasi hash setelah data terakhir diproses oleh algoritma hash kriptografi.

(Diperoleh dari HashAlgorithm)
Initialize()

Mengatur ulang algoritma hash ke status awalnya.

(Diperoleh dari HashAlgorithm)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Menghitung nilai hash untuk wilayah yang ditentukan dari array byte input dan menyalin wilayah yang ditentukan dari array byte input ke wilayah yang ditentukan dari array byte output.

(Diperoleh dari HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)

Menghitung nilai hash untuk wilayah yang ditentukan dari array byte yang ditentukan.

(Diperoleh dari HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Mencoba menghitung nilai hash untuk array byte yang ditentukan.

(Diperoleh dari HashAlgorithm)
TryHashFinal(Span<Byte>, Int32)

Upaya untuk menyelesaikan komputasi hash setelah data terakhir diproses oleh algoritma hash.

(Diperoleh dari HashAlgorithm)

Implementasi Antarmuka Eksplisit

IDisposable.Dispose()

Merilis sumber daya tidak terkelola yang digunakan oleh HashAlgorithm dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari HashAlgorithm)

Berlaku untuk

Lihat juga