RIPEMD160Managed Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вычисляет хэш RIPEMD160 для входных данных с помощью управляемой библиотеки.
public ref class RIPEMD160Managed : System::Security::Cryptography::RIPEMD160
[System.Runtime.InteropServices.ComVisible(true)]
public class RIPEMD160Managed : System.Security.Cryptography.RIPEMD160
[<System.Runtime.InteropServices.ComVisible(true)>]
type RIPEMD160Managed = class
inherit RIPEMD160
Public Class RIPEMD160Managed
Inherits RIPEMD160
- Наследование
- Атрибуты
Примеры
В следующем примере кода показано, как кодировать файл с помощью RIPEMD160Managed класса , а затем декодировать файл.
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
Комментарии
RIPEMD-160 — это 160-разрядная криптографическая хэш-функция. Он предназначен для использования в качестве безопасной замены 128-разрядных хэш-функций MD4, MD5 и RIPEMD. RIPEMD был разработан в рамках проекта ЕС RIPE (RACE Integrity Primitives Evaluation, 1988-1992).
Примечание
RIPEMD160Managed заменены алгоритмами secure hash SHA-256 и SHA-512 и их производными классами. SHA256Managed и SHA512Managed обеспечивают более высокую безопасность и производительность, чем RIPEMD160Managed. Используйте RIPEMD160Managed только для совместимости с устаревшими приложениями и данными.
Конструкторы
RIPEMD160Managed() |
Инициализирует новый экземпляр класса RIPEMD160. |
Поля
HashSizeValue |
Представляет размер вычисленного хэш-кода в битах. (Унаследовано от HashAlgorithm) |
HashValue |
Представляет значение вычисляемого хэш-кода. (Унаследовано от HashAlgorithm) |
State |
Представляет состояние процесса вычисления хэша. (Унаследовано от HashAlgorithm) |
Свойства
CanReuseTransform |
Получает значение, указывающее на возможность повторного использования текущего преобразования. (Унаследовано от HashAlgorithm) |
CanTransformMultipleBlocks |
Если переопределено в производном классе, возвращает значение, указывающее, возможно ли преобразование нескольких блоков. (Унаследовано от HashAlgorithm) |
Hash |
Получает значение вычисленного хэш-кода. (Унаследовано от HashAlgorithm) |
HashSize |
Получает размер вычисленного хэш-кода в битах. (Унаследовано от HashAlgorithm) |
InputBlockSize |
При переопределении в производном классе получает размер входного блока. (Унаследовано от HashAlgorithm) |
OutputBlockSize |
При переопределении в производном классе получает размер выходного блока. (Унаследовано от HashAlgorithm) |
Методы
Clear() |
Освобождает все ресурсы, используемые классом HashAlgorithm. (Унаследовано от HashAlgorithm) |
ComputeHash(Byte[]) |
Вычисляет хэш-значение для заданного массива байтов. (Унаследовано от HashAlgorithm) |
ComputeHash(Byte[], Int32, Int32) |
Вычисляет хэш-значение для заданной области заданного массива байтов. (Унаследовано от HashAlgorithm) |
ComputeHash(Stream) |
Вычисляет хэш-значение для заданного объекта Stream. (Унаследовано от HashAlgorithm) |
ComputeHashAsync(Stream, CancellationToken) |
Асинхронно вычисляет хэш-значение для заданного объекта Stream. (Унаследовано от HashAlgorithm) |
Dispose() |
Освобождает все ресурсы, используемые текущим экземпляром класса HashAlgorithm. (Унаследовано от HashAlgorithm) |
Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые объектом HashAlgorithm, а при необходимости освобождает также управляемые ресурсы. (Унаследовано от HashAlgorithm) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
HashCore(Byte[], Int32, Int32) |
При переопределении в производном классе маршрутизирует данные, записанные в объект, в хэш-алгоритм RIPEMD160 для вычисления хэша. |
HashCore(ReadOnlySpan<Byte>) |
Передает записываемые в объект данные в хэш-алгоритм для вычисления хэша. (Унаследовано от HashAlgorithm) |
HashFinal() |
Если переопределено в производном классе, завершает вычисление хэша после обработки последних данных криптографическим потоковым объектом. |
Initialize() |
Инициализирует экземпляр класса RIPEMD160Managed, используя управляемую библиотеку. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
TransformBlock(Byte[], Int32, Int32, Byte[], Int32) |
Вычисляет хэш-значение для заданной области входного массива байтов и копирует указанную область входного массива байтов в заданную область выходного массива байтов. (Унаследовано от HashAlgorithm) |
TransformFinalBlock(Byte[], Int32, Int32) |
Вычисляет хэш-значение для заданной области заданного массива байтов. (Унаследовано от HashAlgorithm) |
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Пытается вычислить хэш-значение для заданного массива байтов. (Унаследовано от HashAlgorithm) |
TryHashFinal(Span<Byte>, Int32) |
Пытается завершить вычисление хэша после обработки последних данных хэш-алгоритмом. (Унаследовано от HashAlgorithm) |
Явные реализации интерфейса
IDisposable.Dispose() |
Освобождает неуправляемые ресурсы, используемые объектом HashAlgorithm, а при необходимости освобождает также управляемые ресурсы. (Унаследовано от HashAlgorithm) |