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