C# 文件加密#
我在网上找到了这段代码,我想知道这个程序传递了什么,这个输出和输入字符串是什么?我将输入作为文件名传递,将输出作为路径传递,但它给出了错误C# 文件加密#,c#,encryption,C#,Encryption,我在网上找到了这段代码,我想知道这个程序传递了什么,这个输出和输入字符串是什么?我将输入作为文件名传递,将输出作为路径传递,但它给出了错误 private void EncryptFile(string inputFile, string outputFile) { try { string password = @"myKey123"; // Your Key Here UnicodeEncoding UE = new UnicodeEncodi
private void EncryptFile(string inputFile, string outputFile)
{
try
{
string password = @"myKey123"; // Your Key Here
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();
}
catch
{
MessageBox.Show("Encryption failed!", "Error");
}
}
outputFile
参数不是路径,而是需要写入的完全限定文件名。调用此代码的示例方法是:
EncryptFile(@“c:\temp\unencryptedfile.txt”,“c:\temp\encryptedfile.txt”)代码>
除此之外,用以下内容替换锁扣
代码:
catch(Exception ex) {
MessageBox.Show(ex.Message); // will show the top exception
if (ex.InnerException != null) {
MessageBox.Show(ex.InnerException.Message); // will show additional details if present
}
}
旁注:您知道,您的代码会泄漏内存。您可能希望调查using
子句,并查找您正在使用的类中的哪些实现了IDisposable
它给出了什么错误?。。。那是因为你吃了例外。出于调试目的删除try-catch,或更改catch子句以捕获所有异常(catch(Exception ex)
),设置断点并检查异常。尝试在catch语句中捕获异常catch(Exception ex){/*capture消息并粘贴到问题*/}
@AustinSalonencatch(Exception ex ex){/*捕获消息并粘贴到Google*/}
FTFY。是的,谢谢Chris,效果很好。还有一件事,如果我不想在程序中使用密钥,该怎么办?我可以删除字符串密码吗?@SoftwareDeveloper:加密需要密钥;你不能删除它。