Deszyfracja danych z bazy danych...

Deszyfracja danych z bazy danych...
PY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 131
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:

Kopiuj
 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:

Kopiuj
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??

neves
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1114
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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.