Caesar-Chiffre

Im Folgenden finden Sie den Quellcode von 2 Methoden, mit denen man einen String mit Hilfe des Caesar-Chiffre-Verfahrens verschlüsseln kann. Um die jeweilige Methode aufzurufen, übergibt man ihr den zu verschlüsselnden/entschlüsselnden Text als String und den Schlüssel ebenfalls als String. Die Methode gibt den entschlüsselten oder verschlüsselten Text zurück.

Beispiel zum Verschlüsseln eines Textes

MessageBox.Show(Encrypt(„Dieser Text soll verschlüsselt werden!“, „KEY“));

Verschlüsseln

public string Encrypt(string text, string key)
{
    if (key != string.Empty)
    {
        string encrypted = string.Empty;             
        int keyindex = 0;

        foreach (char c in text)
        {
            int asciinr = (int)c;
            asciinr += (int)key[keyindex];

            if (asciinr > 255)
                asciinr -= 255;
          
            encrypted += (char)asciinr;

            keyindex++;
            if (keyindex > key.Length - 1)
                keyindex = 0;
        }
        return encrypted;
    }
    else
        return text;
}

Beispiel zum Entschlüsseln eines Textes

MessageBox.Show(Decrypt(„Dieser Text soll entschlüsselt werden!“, „KEY“));

Entschlüsseln

public string Decrypt(string text, string key)
{
    if (key != string.Empty)
    {
        string decrypted = string.Empty;             
        int keyindex = 0;

        foreach (char c in text)
        {
            int asciinr = (int)c;
            asciinr -= (int)key[keyindex];

            if (asciinr < 0)
                asciinr = 255 + asciinr;

            decrypted += (char)asciinr;
            keyindex++;
            if (keyindex > key.Length - 1)
                keyindex = 0;
        }
        return decrypted;
    }
    else
        return text;
}

UTF8-Verschlüsselung

Im Folgenden finden Sie den Quellcode von 2 Methoden, mit denen man einen String mit Hilfe der UTF8-Verschlüsselung verschlüsseln kann. Um die jeweilige Methode aufzurufen, übergibt man ihr den zu verschlüsselnden/entschlüsselnden Text als String und den Schlüssel ebenfalls als String. Die Methode gibt den entschlüsselten oder verschlüsselten Text zurück.

Beispiel zum Verschlüsseln eines Textes

MessageBox.Show(Encrypt(„Dieser Text soll verschlüsselt werden!“, „KEY“));

Verschlüsseln

public string Encrypt(string plainMessage, string password)
{
    TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
    des.IV = new byte[8];
    PasswordDeriveBytes pdb = new PasswordDeriveBytes(password, new byte[0]);
    des.Key = pdb.CryptDeriveKey("RC2", "MD5", 128, new byte[8]);
    MemoryStream ms = new MemoryStream(plainMessage.Length * 2);
    CryptoStream encStream = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
    byte[] plainBytes = Encoding.UTF8.GetBytes(plainMessage);
    encStream.Write(plainBytes, 0, plainBytes.Length);
    encStream.FlushFinalBlock();
    byte[] encryptedBytes = new byte[ms.Length];
    ms.Position = 0;
    ms.Read(encryptedBytes, 0, (int)ms.Length);
    encStream.Close();
    return Convert.ToBase64String(encryptedBytes);
}

 

Beispiel zum Entschlüsseln eines Textes

MessageBox.Show(Decrypt(„Dieser Text soll entschlüsselt werden!“, „KEY“));

Entschlüsseln

public string Decrypt(string encryptedBase64, string password)
{
    TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
    des.IV = new byte[8];
    PasswordDeriveBytes pdb = new PasswordDeriveBytes(password, new byte[0]);
    des.Key = pdb.CryptDeriveKey("RC2", "MD5", 128, new byte[8]);
    byte[] encryptedBytes = Convert.FromBase64String(encryptedBase64);
    MemoryStream ms = new MemoryStream(encryptedBase64.Length);
    CryptoStream decStream = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
    decStream.Write(encryptedBytes, 0, encryptedBytes.Length);
    decStream.FlushFinalBlock();
    byte[] plainBytes = new byte[ms.Length];
    ms.Position = 0;
    ms.Read(plainBytes, 0, (int)ms.Length);
    decStream.Close();
    return Encoding.UTF8.GetString(plainBytes);
}

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close