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消息并粘贴到问题*/}
@AustinSalonen
catch(Exception ex ex){/*捕获消息并粘贴到Google*/}
FTFY。是的,谢谢Chris,效果很好。还有一件事,如果我不想在程序中使用密钥,该怎么办?我可以删除字符串密码吗?@SoftwareDeveloper:加密需要密钥;你不能删除它。