我目前有兴趣进一步提高我在加密和解密方面的编程技能,并找到了许多 Rijndael 密码的示例。
我开始在 C# 中编写自己的程序,我单击我的加密按钮,该按钮打开一个对话框窗口以允许我选择一个文件....到目前为止一切正常
我选择一个文件,并逐步执行我的代码,我得到我的文件的根路径,生成一个密钥,然后我开始将我的纯文本转换为密文......这就是我遇到问题的地方。
try
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "All Files (*.*)|";
dialog.InitialDirectory = @"Desktop";
dialog.Title = "Please select a file to encrypt.";
dialog.ShowDialog();
inputFile = dialog.FileName;
outputFile = inputFile;
string password = @"secrets"; // key to encrypt files
UnicodeEncoding UE = new UnicodeEncoding();
byte[] key = UE.GetBytes(password);
string cryptFile = outputFile;
FileStream fsCrypt = new FileStream(cryptFile, FileMode.Create);
RijndaelManaged RMCrypto = new RijndaelManaged();
CryptoStream cs = new CryptoStream(fsCrypt,
RMCrypto.CreateEncryptor(key, key),
CryptoStreamMode.Write);
FileStream fsIn = new FileStream(inputFile, FileMode.Append);
int data;
while ((data = fsIn.ReadByte()) != -1)
cs.WriteByte((byte)data);
fsIn.Close();
cs.Close();
fsCrypt.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
当我到达这段代码时问题就来了
CryptoStream cs = new CryptoStream(fsCrypt,
RMCrypto.CreateEncryptor(key, key),
CryptoStreamMode.Write);
我得到的错误是 system.windows.forms.mouseeventargs 有人可以帮我吗?
编辑!!!这是我的错误的实际错误消息。指定的初始化向量(IV)与该算法的块大小不匹配。