在C#中使用MD5和DES的PBE
本文关键字:DES PBE MD5 | 更新日期: 2023-09-27 18:28:19
应该如何使用此代码指定文本输入和输出?我需要打开一个文件并读取其内容(我知道如何做到这一点),然后使用此代码对其进行解密。
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是未加密的字节,但我需要使用带有C#形式的textBox进行输入和输出。
这就是它需要的工作方式:textBox1.文本(输入)->字节->^以上^string->字节->textBox2.文本(输出)只要我的输入是加密文本,我的输出是解密文本,任何东西都可以工作。
根据您的评论,假设我仍然正确理解这个问题。把它变成自己的类:
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;
}