private void buttonAsym_Click(object sender, EventArgs e) { if (comboBoxAsym.SelectedIndex < 0) //walidacja textBox { MessageBox.Show("Wybierz wartość dla pola comboBox 'Co chcesz zrobić?'"); } else if (string.IsNullOrWhiteSpace(textBoxInputAsym.Text)) //walidacja comboBox { MessageBox.Show("Wypełnij pole 'Wprowadź tekst'"); } else { var cryptoServiceProvider = new RSACryptoServiceProvider(2048); //długość klucza var privateKey = cryptoServiceProvider.ExportParameters(true); //klucz prywatny var publicKey = cryptoServiceProvider.ExportParameters(false); //klucz publiczny string publicKeyString = Asymmetric.GetKeyString(publicKey); //przypisanie klucza publicznego do stringa string privateKeyString = Asymmetric.GetKeyString(privateKey); //przypisanie klucza prywatnego do stringa textBoxPublicKey.Text = publicKeyString; //wypisanie klucza publicznego w textBoxie textBoxPrivateKey.Text = privateKeyString; //wypisanie klucza prywatnego w textBoxie string inputText = textBoxInputAsym.Text; //przypisanie zawartości textBoxa do zmiennej string encryptedText = Asymmetric.Encrypt(inputText, publicKeyString); //funkcja szyfrowania string decryptedText = Asymmetric.Decrypt(encryptedText, privateKeyString); //funkcja deszyfrowania if (comboBoxAsym.SelectedIndex == 0) { textBoxResultAsym.Text = encryptedText; } if (comboBoxAsym.SelectedIndex == 1) { textBoxResultAsym.Text = decryptedText; } } }
private void buttonAsymFile_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "Pliki textowe (txt)|*.txt"; //połączenie z plikiem if (dialog.ShowDialog() == DialogResult.OK) //sprawdzenie połączenia { textBoxInputAsym.Text = File.ReadAllText(dialog.FileName); //przypisanie wartości z pliku do textBoxa "Wprowadź tekst" string toEncrypt = File.ReadAllText(dialog.FileName); //przypisanie wartości z pliku do zmiennej var cryptoServiceProvider = new RSACryptoServiceProvider(2048); //długość klucza var privateKey = cryptoServiceProvider.ExportParameters(true); //klucz prywatny var publicKey = cryptoServiceProvider.ExportParameters(false); //klucz publiczny string publicKeyString = Asymmetric.GetKeyString(publicKey); //przypisanie klucza publicznego do stringa string privateKeyString = Asymmetric.GetKeyString(privateKey); //przypisanie klucza prywatnego do stringa textBoxPublicKey.Text = publicKeyString; //wypisanie klucza publicznego w textBoxie textBoxPrivateKey.Text = privateKeyString; //wypisanie klucza prywatnego w textBoxie string encryptedText = Asymmetric.Encrypt(toEncrypt, publicKeyString); textBoxResultAsym.Text = encryptedText; //wypisywanie zaszyfrowanego wyniku w textBoxie } }
public string EncryptData(string data, EncryptType encryptType) { string encryptedString = ""; if (data == "null") { encryptedString = "null"; } if (data != null && data != string.Empty && data.ToLower() != "null") { switch (encryptType) { case EncryptType.Symmetric: Symmetric.Provider p = Symmetric.Provider.TripleDES; Symmetric sym = new Symmetric(p); //sym.Key.Text = symmetricKey; Data encryptedData = null; encryptedData = sym.Encrypt(new Data(data)); encryptedString = encryptedData.Base64; break; case EncryptType.Asymmetric: Asymmetric asym = new Asymmetric(); Asymmetric.PublicKey pubkey = new Asymmetric.PublicKey(); Asymmetric.PrivateKey privkey = new Asymmetric.PrivateKey(); asym.GenerateNewKeyset(ref pubkey, ref privkey); Data EncryptedData = null; EncryptedData = asym.Encrypt(new Data(data), pubkey); encryptedString = EncryptedData.Base64; break; case EncryptType.Hash: Hash.Provider phash = Hash.Provider.SHA1; Hash hash = new Hash(phash); EncryptedData = hash.Calculate(new Data(data)); encryptedString = EncryptedData.Base64; break; } } return encryptedString; }