Deszyfracja danych z bazy danych...

0

Mam takie pytanie ćwiczę szyfrowanie RSA i nie potrafię zdeszyfrować informacji pobranej z bazy danych.
Mianowicie z pola txtTekst szyfruje i zapisuje w Bazie. Działa tak mi się wydaje ;) znakomicie... Mam problem z deszyfracją pobranych danych...
Dostaję taki komunikat system.security.cryptography.cryptographicexception: Parametr jest niepoprawny
I wskazuje na linię decryptedData = RSAalg.Decrypt(bytes, false).ToString();
Mój kod jest taki:

 private void OdswiezGrid()
        {
            try
            {
                ASCIIEncoding ByteConverter = new ASCIIEncoding();
                string decryptedData;
                RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider();
                
                List<string> result = new List<string>();
                var zbiorWynikowy = (from wiersz in bazka.GetTable<test_hash>() select wiersz).ToArray();

                foreach (var c in zbiorWynikowy)
                {


                    byte[] bytes = Encoding.ASCII.GetBytes(c.string_test);
                    decryptedData = RSAalg.Decrypt(bytes, false).ToString();
                    dgvPrzychody.Rows.Add(c.ID, c.data, decryptedData.ToString(), c.liczba);
                }

                

            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

I dodanie do bazy:

private void btnDodaj_Click(object sender, EventArgs e)
        {
            try
            {
                ASCIIEncoding ByteConverter = new ASCIIEncoding();
                string dataString = (txtTekst.Text);


                byte[] dataToEncrypt = ByteConverter.GetBytes(dataString);
                byte[] iloscToEncrypt = ByteConverter.GetBytes(iloscString);
                byte[] encryptedData;
             
                RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider();
                encryptedData = RSAalg.Encrypt(dataToEncrypt, false);



                try
                {
                    test_hash nowyWpis = new test_hash
                    {
                        string_test = ByteConverter.GetString(encryptedData),
                        data = dtpDataDodaj.Text


                    };
                   
                    bazka.test_hash.InsertOnSubmit(nowyWpis);
                    bazka.SubmitChanges();
                    OdswiezGrid();
                }
             catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

Czy ktoś może mi pomóc jak mam zdeszyfrować dane zapisane w bazie??

1

A zdajesz sobie sprawę że do szyfrowania asymetrycznego RSA, są potrzebne dwa klucze publiczny i prywatny ;)? Przy każdym stworzeniu obiektu RSACryptoServiceProvider jest generowany nowy zestaw kluczy. Więc żeby odszyfrować dane potrzebujesz również mieć klucz prywatny, odpowiadający kluczowi publicznemu, który został użyty do zaszyfrowania danych

var pub_key = RSAalg .ExportParameters(false); // export public key
var priv_key = RSAalg .ExportParameters(true); // export private key

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