RIPEMD160.Create Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří konkrétní implementace RIPEMD160 třídy.
Přetížení
Create() |
Vytvoří instanci výchozí implementace RIPEMD160 hash algoritmu. |
Create(String) |
Vytvoří instanci zadané implementace RIPEMD160 hash algoritmu. |
Create()
Vytvoří instanci výchozí implementace RIPEMD160 hash algoritmu.
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
Návraty
Nová instance hashovacího RIPEMD160 algoritmu.
Výjimky
Algoritmus byl použit s povoleným režimem FIPS (Federal Information Processing Standards), ale není kompatibilní se standardem FIPS.
Příklady
Následující příklad kódu vypočítá RIPEMD160 hodnotu hash pro všechny soubory v adresáři.
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
Poznámky
Nelze vytvořit instanci abstraktní třídy. Kód aplikace vytvoří novou instanci odvozené třídy. Další informace najdete ve RIPEMD160Managed třídě.
Viz také
Platí pro
Create(String)
Vytvoří instanci zadané implementace RIPEMD160 hash algoritmu.
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
Parametry
Návraty
Nová instance zadané implementace .RIPEMD160
Výjimky
Algoritmus popsaný parametrem byl použit s povoleným režimem hashName
FIPS (Federal Information Processing Standards), ale není kompatibilní s FIPS.
Poznámky
Nelze vytvořit instanci abstraktní třídy. Kód aplikace vytvoří novou instanci odvozené třídy. Další informace najdete ve RIPEMD160Managed třídě.