Szyfrowanie pliku txt

0

Piszę program szyfrujący wiadomość tekstową i chciałbym uzyskać możliwość zapisania zakodowanej wiadomości wyłączenia programu i później włączenia programu i odkodowania tej wiadomości, niestety wszystkie rozwiązania jakie widziałem nie umożliwiają czegoś takiego

 string haslo;
            using (input input = new input())
            {

                if (input.ShowDialog() == DialogResult.OK)
                {

                    haslo = input.input_text;
                    TripleDESCryptoServiceProvider triple = new TripleDESCryptoServiceProvider();
                    UTF8Encoding u = new UTF8Encoding();
                    MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();

                    triple.Key = md5.ComputeHash(u.GetBytes(haslo));
                    triple.Mode = CipherMode.ECB;
                    triple.Padding = PaddingMode.PKCS7;

                    ICryptoTransform trans = triple.CreateDecryptor();
                    myTextBox1.Text = u.GetString(trans.TransformFinalBlock(allbytes, 0, allbytes.Length));
                }
            }

allbytes jest "globalna", problemem jest to że jak bym nie próbował tego zakodowanego tekstu z mytexbox przekonwertować na tablicę bitów to to nie działa, jakieś rady? wskazówki? Chętnie przyjmę :)

0

Co to znaczy że nie działa? Masz jakiś komunikat o błędzie?

0

Powyższy kod jest ok bo korzysta z globalnej tablicy, ale:

string haslo;
            using (input input = new input())
            {

                if (input.ShowDialog() == DialogResult.OK)
                {

                    haslo = input.input_text;
                    TripleDESCryptoServiceProvider triple = new TripleDESCryptoServiceProvider();
                    UTF8Encoding u = new UTF8Encoding();
                    MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();

                    triple.Key = md5.ComputeHash(u.GetBytes(haslo));
                    triple.Mode = CipherMode.ECB;
                    triple.Padding = PaddingMode.PKCS7;

                    ICryptoTransform trans = triple.CreateDecryptor();
                    myTextBox1.Text = u.GetString(trans.TransformFinalBlock(u.GetBytes(myTextBox1.Text), 0, u.GetBytes(myTextBox1.Text).Length));
                }
            }

wyrzuca wyjątek, nieważne jak bym nie próbował tego zmienić

1

Nie pomagasz. Nie znam .netowych crypto bibliotek, ale spróbuje zgadnąć.

triple.Key = md5.ComputeHash(u.GetBytes(haslo));

MD5 to hash który zwraca 128 bitów, klucze TDES powinny mieć 168, 112 albo 56 bitów.

1

Rozwiązałem już problem.

0 użytkowników online, w tym zalogowanych: 0, gości: 0