【发布时间】:2014-05-10 07:35:42
【问题描述】:
在使用 C# 加密音频文件时,出现“指定初始化向量 (IV) 与算法的块大小不匹配”的异常。我正在使用密码学类提供的 Rijndael 算法。我应该怎么做才能解决这个异常? 我的代码如下:
public void EncryptFile(string inputFile, string outputFile)
{
try
{
inputFile = textBox_path.Text;
String password = "keykey";
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.Open);
int data;
while ((data = fsIn.ReadByte()) != -1)
cs.WriteByte((byte)data);
fsIn.Close();
cs.Close();
fsCrypt.Close();
MessageBox.Show("encryption is completed!!");
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
}
我的函数调用是:
【问题讨论】:
-
你应该做什么?好吧,基于错误我会说你需要让 IV 匹配块大小。没有看到您的代码或更多关于您将获得的最佳答案的信息,除非这里有人可以读心......
-
请发布您的代码。
标签: c#