Môžeme ho použiť napr. ako kontrolný súčet. Rovnaké slovo bude mať rovnaký HASH kód.
MD5 - 16B (32 bitov), SHA1 - 20B (160 bitov), SHA256 - 32B (256 bitov), SHA384 - 48B (384 bitov), SHA512 - 64B (512 bitov)
SHA1 v C#
private byte[] Hash(byte[] data)
{
SHA1 sha = new SHA1CryptoServiceProvider();
return sha.ComputeHash(data);
}
SHA256 v C#
private byte[] Hash2(byte[] data)
{
SHA256 shaM = new SHA256Managed();
return shaM.ComputeHash(data);
}
Convert string na byte[ ] v C#
public static byte[] StrToByteArray(string str)
{
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
return encoding.GetBytes(str);
}
Použitie v C#
byte[] vystupneDataBytes; byte[] vstupneDataBytes; string vstupneData; vstupneData ="www.projectik.eu";//vstup je string vstupneDataBytes = StrToByteArray(data);//Convertujeme na pole byteov vystupneDataBytes = Hash(vstupneDataBytes);//Vystupny HASH kod
MD5 na string v C#
private string hashMD5String(string value)
{
MD5 md5Hasher = MD5.Create();
byte[] data =Encoding.ASCII.GetBytes(value);
byte[] hashData = md5Hasher.ComputeHash(data);
string ret = "";
for (int i = 0; i < hashData.Length; i++)
ret += hashData[i].ToString("x2").ToLower();
return ret;
}
K prevodu byte[] na string môžeme použiť aj napr . BitConverter , potom zdrojový kód bude vyzerať nasledovne :
private string hashString(string value)
{
MD5 md5Hasher = MD5.Create();
byte[] data =Encoding.ASCII.GetBytes(value);
byte[] hashData = md5Hasher.ComputeHash(data);
return BitConverter.ToString(hashData);
}







