C# 如何读取加密文本文件上的行数?

C# 如何读取加密文本文件上的行数?,c#,encryption,cryptography,aes,windows-forms-designer,C#,Encryption,Cryptography,Aes,Windows Forms Designer,所以我有一个加密文本文件程序(根据需要工作),问题是我需要在MessageBox上显示这个结果: 加密前和文件加密后读取的行数 加密前读取的行的行计数器已使用相同的算法工作 Ej读取的X'行数'Y'行数已加密 我有一个简单的算法来读取加密文件: public long CountlLines(string a) { long count = 0; string line; FileStream FS = new FileStrea

所以我有一个加密文本文件程序(根据需要工作),问题是我需要在MessageBox上显示这个结果:

加密前和文件加密后读取的行数

加密前读取的行的行计数器已使用相同的算法工作

Ej读取的X'行数'Y'行数已加密

我有一个简单的算法来读取加密文件:

    public long CountlLines(string a)
    {
        long count = 0;
        string line;

        FileStream FS = new FileStream(a, FileMode.Open, FileAccess.Read);
        StreamReader Reader = new StreamReader(FS);

        while (Reader.EndOfStream == false)
        {
            line = Reader.ReadLine();
            count++;
        }


        Reader.Close();
        return count;
    }
我得到了159行文件,当解密时,会产生11行加密代码(在记事本上打开),但通过这种算法,我得到:

Ej159'行数读取'1'行数已加密


加密方法是AES,具有128位密钥…(如果是…)。我做错什么了吗?或者是否有某种特定的方法或“方式”来读取加密文本?谢谢。

您的加密文件不包含换行符标记。因此,当“Reader.ReadLine()”执行时,它会执行您要求它执行的操作。它读取这些行,直到出现一个新行,其中没有任何一行,因为您已将它们全部加密。现在是一条线了


当然,假设您已加密了全部内容,而不是逐行加密;)

你的意思是说加密内容后的行数是错误的?记事本是自动断行的,最好使用记事本++在解密之前,你不能读取加密文件中的行数-至少没有任何意义。非常感谢,当我开始寻找其他读取行数的“方法”时,我也有同样的理论,但我没有消息来源证实这一点。:)密文可能包含换行符(任意给定字节为“\n”的概率为1/256),但它们在任何方面都没有意义,因为密文是二进制数据而不是文本。