C# Passwort-Verschlüsselung

Fand ich einige code-online, das funktioniert ziemlich gut für das, was ich zu tun versuche. Ich brauche etwas, das verschlüsseln ein Kennwort, speichern Sie in einer Datenbank und abrufen mit Leichtigkeit. Der code unten tut fast alles, was ich Suche.

        string UserName = txtUser.Text;
        string password = txtPass.Text;

        string encrKey = "keyvalue";
        byte[] byteKey = { };
        byte[] IV = {25, 47, 60, 88, 99, 106, 125, 139};
        byteKey = Encoding.UTF8.GetBytes(encrKey.Substring(0, 8));
        DESCryptoServiceProvider des = new DESCryptoServiceProvider();
        byte[] inputArray = Encoding.UTF8.GetBytes(password);

        MemoryStream ms = new MemoryStream();
        CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byteKey, IV), CryptoStreamMode.Write);
        cs.Write(inputArray, 0, inputArray.Length);
        cs.FlushFinalBlock();
        password = Convert.ToBase64String(ms.ToArray());

        SqlCommand cmd = new SqlCommand("INSERT INTO USers (UserName, Password) VALUES (@UserName, @Password)", myConnection);
        cmd.CommandType = CommandType.Text;

        cmd.Parameters.AddWithValue("@UserName", UserName);
        cmd.Parameters.AddWithValue("@Password", password);

        SqlDataReader rdr = cmd.ExecuteReader();

Das Problem, das ich verwende, ist der Fehler code aus, wenn das Kennwort ist 8 Zeichen oder mehr. Ich bekomme diese Fehlermeldung:

System.Sicherheit.Die Kryptographie.CryptographicException: die Angegebene Taste ist keine gültige Größe für diesen Algorithmus. Der Fehler wird generiert, auf die Cryptostream-Linie.

Brauche ich eine andere Art für meine Schlüssel?

InformationsquelleAutor Matt | 2011-06-28
Schreibe einen Kommentar