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); }