2012-03-20 2 views
0

Как указать ввод и вывод текста с помощью этого кода? Мне нужно открыть файл и прочитать его содержимое (которое я знаю, как это сделать), а затем расшифровать его с помощью этого кода.PBEwithMD5andDES в C#

public string DecryptUsernamePassword(string cipherText) 
    { 
     if (string.IsNullOrEmpty(cipherText)) 
     { 
      return cipherText; 
     } 

     byte[] salt = new byte[] 
     { 
      (byte)0xc7, 
      (byte)0x73, 
      (byte)0x21, 
      (byte)0x8c, 
      (byte)0x7e, 
      (byte)0xc8, 
      (byte)0xee, 
      (byte)0x99 
     }; 

     PKCSKeyGenerator crypto = new PKCSKeyGenerator("PASSWORD HERE", salt, 20, 1); 

     ICryptoTransform cryptoTransform = crypto.Decryptor; 
     byte[] cipherBytes = System.Convert.FromBase64String(cipherText); 
     byte[] clearBytes = cryptoTransform.TransformFinalBlock(cipherBytes, 0, cipherBytes.Length); 
     return Encoding.UTF8.GetString(clearBytes); 
    } 

шифротекста зашифрованного текст и clearBytes являются незащищенные байты, но мне нужно использовать TextBox с C# формы для ввода и вывода.

Вот как это должно работать: textBox1.Text (input) -> bytes ->^above^string -> bytes -> textBox2.Text (output) Все, что работает tbh, пока мой вход зашифрованный текст и мой вывод - расшифрованный текст.

+0

Не ясно, о чем вы спрашиваете. Не работает ли этот код? Вы спрашиваете, как добавить это в некоторый графический интерфейс с текстовыми полями? – mfanto

+0

Точно я должен был добавить, что вместо того, чтобы додуматься, как я объясню свою цель. –

+0

Лучше всего просто найти C# winforms или учебник WPF и адаптировать его к вашим потребностям. Просто создайте форму с помощью 2 текстовых полей. В обработчике нажатия кнопки вы сделаете что-то вроде: string result = DecryptUsernamePassword (inputTextBox.Text); resultTextBox.Text = result; – mfanto

ответ

0

Основываясь на ваших комментариях, если я все еще правильно понимаю вопрос. Сделайте это в своем собственном классе:

public class UsernameDecryptor 
{ 
     public string Decrypt(string cipherText) 
     { 
      if (string.IsNullOrEmpty(cipherText)) 
       return cipherText; 


      byte[] salt = new byte[] 
      { 
       (byte)0xc7, 
       (byte)0x73, 
       (byte)0x21, 
       (byte)0x8c, 
       (byte)0x7e, 
       (byte)0xc8, 
       (byte)0xee, 
       (byte)0x99 
      }; 

      PKCSKeyGenerator crypto = new PKCSKeyGenerator("PASSWORD HERE", salt, 20, 1); 

      ICryptoTransform cryptoTransform = crypto.Decryptor; 
      byte[] cipherBytes = System.Convert.FromBase64String(cipherText); 
      byte[] clearBytes = cryptoTransform.TransformFinalBlock(cipherBytes, 0, cipherBytes.Length); 

      return Encoding.UTF8.GetString(clearBytes); 
     } 
} 

Затем внутри обработчика кнопки:

private void button1_Click (object sender, System.EventArgs e) 
{ 
    UsernameDecryptor decryptor = new UsernameDecryptor(); 

    string result = decryptor.Decrypt(inputTextBox.Text); 

    outputTextBox.Text = result; 
} 
+0

Сохраняет неправильную длину для 64-битного массива символов, когда я нажимаю кнопку. –

+0

Это сработало nvm У меня было это неправильно XD –