Die Klasse GetHash liefert anhand des übergebenen String und der entsprechenden VerschluesselungsMethode den ermittelten HashWert. Implementiert sind folgende Methoden: MD5, SHA1, SHA256, SHA384 und SHA512.
Die Idee entstand durch das Snippet hier in C++, welche Methode einen MD5 Hash liefert.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | using System; using System.Security.Cryptography; using System.Text; static class GetHash { /// <summary> /// Aufzaehlung der /// Verschluesselungsmethoden /// </summary> public enum HASH { MD5 = 0, SHA1 = 1, SHA256 = 2, SHA384 = 3, SHA512 = 4 } /// <summary> /// Liefert anhand des uebergebenen String /// und der entsprechenden VerschluesselungsMethode /// (MD5 = 0,SHA1 = 1,SHA256 = 2,SHA384 = 3,SHA512 = 4) /// den ermittelten HashWert /// </summary> /// <param name="_value">String</param> /// <param name="_hash">Enum</param> /// <returns>Hash</returns> public static String HashString(String _value, HASH _hash) { Byte[] bytes; var hashValue = new Byte[1]; var sb = new StringBuilder(); switch (_hash) { case HASH.MD5: var MD5 = new MD5CryptoServiceProvider(); bytes = Encoding.ASCII.GetBytes(_value); hashValue = MD5.ComputeHash(bytes); break; case HASH.SHA1: var SHA1 = new SHA1CryptoServiceProvider(); bytes = Encoding.ASCII.GetBytes(_value); hashValue = SHA1.ComputeHash(bytes); break; case HASH.SHA256: var SHA256 = new SHA256CryptoServiceProvider(); bytes = Encoding.ASCII.GetBytes(_value); hashValue = SHA256.ComputeHash(bytes); break; case HASH.SHA384: var SHA384 = new SHA384CryptoServiceProvider(); bytes = Encoding.ASCII.GetBytes(_value); hashValue = SHA384.ComputeHash(bytes); break; case HASH.SHA512: var SHA512 = new SHA512CryptoServiceProvider(); bytes = Encoding.ASCII.GetBytes(_value); hashValue = SHA512.ComputeHash(bytes); break; } for (var i = 0; i <= hashValue.Length - 1; i++) { sb.Append(hashValue[i].ToString("X2")); } return sb.ToString(); } } |
Aufgerufen das ganze dann z.B. so:
Console.WriteLine(GetHash.HashString("MEINPASSWORT", GetHash.HASH.MD5));
Verbesserungsvorschläge? Immer her damit : )









[...] hatte ja im vorherigen Artikel geschrieben, wie man die jeweiligen HashWerte ermitteln [...]
Hallo,
die Verschlüsselung ist sehr interessant. Die MD5 verschlüssleung soll ja auch sehr sicher sein. Ich frage mich nur wie ich das ganze in meinem Code auch wieder entschlüsseln kann.
Wenn ich z.B. eine ID verschlüssel möchte ich diese ja auch auf einer anderen Page entschlüsseln um mit der ID weiter zu arebiten. Geht das?
Hallo Daniel,
ja dazu muss aber beiden Seiten die ID bekannt sein, so kannst Du dann a’la MD5(ID) die ID auslesen und vergleichen.