Kategorie-Archiv: C#

C#, CSharp -Tipps und Tricks

C# Hashfunktion MD5 und SHA1

Zur Berechnung des MD5 und des SHA1 Hashes in C# bedient man sich des „System.Security.Cryptography“ Namespaces.

Quellcode C# MD5:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/// <summary>
/// Liefert den MD5 Hash 
/// </summary>
/// <param name="input">Eingabestring</param>
/// <returns>MD5 Hash der Eingabestrings</returns>
private string getMD5(string input)
{
    //Umwandlung des Eingastring in den MD5 Hash
    System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
    byte[] textToHash = Encoding.Default.GetBytes(input);
    byte[] result = md5.ComputeHash(textToHash);
 
    //MD5 Hash in String konvertieren
    System.Text.StringBuilder s = new System.Text.StringBuilder();
    foreach (byte b in result)
    {
        s.Append(b.ToString("x2").ToLower());
    }
 
    return s.ToString();
}

Quellcode C# SHA1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/// <summary>
/// Liefert den SHA1 Hash 
/// </summary>
/// <param name="input">Eingabestring</param>
/// <returns>SHA1 Hash der Eingabestrings</returns>
private string getSHA1(string input)
{
    //Umwandlung des Eingastring in den SHA1 Hash
    System.Security.Cryptography.SHA1 sha1 = new System.Security.Cryptography.SHA1CryptoServiceProvider();
    byte[] textToHash = Encoding.Default.GetBytes(input);
    byte[] result = sha1.ComputeHash(textToHash);
 
    //SHA1 Hash in String konvertieren
    System.Text.StringBuilder s = new System.Text.StringBuilder();
    foreach (byte b in result)
    {
        s.Append(b.ToString("x2").ToLower());
    }
 
    return s.ToString();
}

Grundlegend sind die beiden Methoden gleich.

C# INI File lesen

In diesem Beispiel wird das Auslesen einer INI-Datei gezeigt. Hier erst mal der Inhalt der INI-Datei:

1
2
3
[Option]
Farbe=blau
Name=Hans

Der Quellcode:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System.Runtime.InteropServices;
using System.IO;
 
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key, string def, StringBuilder retVal, int size, string filePath);
 
public string GetString(string section, string key)
{
const int size = 255;
      string file = Environment.CurrentDirectory + "\\test.INI";
      string def = "";
 
      StringBuilder sb = new StringBuilder(size);
      GetPrivateProfileString(section, key, def, sb, size, file);
 
      return sb.ToString();
}

Auslesen des Schlüssels „Farbe“ aus der Sektion „Options“:

1
2
string[] args;
args = new string[] {GetString("Options", "Farbe")};

C# ByteArray-To-Image

Folgende Beispiel-Methode konvertiert Bilddaten, die als Bytearray abgelegt wurden in das Imageformat Bitmap oder Metafile. Kann in Verbindung mit der Klasse System.Windows.Forms.PictureBox verwendet werden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public System.Drawing.Image ByteArrayToImage(byte[] byteArray) 
{
try
      {
      	System.IO.MemoryStream ms = new System.IO.MemoryStream(
                                                          byteArray, 0, 
                                                          byteArray.Length);
        ms.Write(byteArray, 0, byteArray.Length);
        return System.Drawing.Image.FromStream(ms, true);
      }
catch
      {                
            return null;
      }            
}