文件解密从结尾丢失~10个字符

Mar*_*ark 2 c# encryption cryptography

我使用RC2CryptoServiceProviderin C#编写了加密/解密方法,由于某些原因,我无法让解密器解密最后几个字节.该文件似乎只是切断了.我的加密方法如下:

    public static byte[] EncryptString(byte[] input, string password)
    {
        PasswordDeriveBytes pderiver = new PasswordDeriveBytes(password, null);
        byte[] ivZeros = new byte[8];
        byte[] pbeKey = pderiver.CryptDeriveKey("RC2", "MD5", 128, ivZeros);

        RC2CryptoServiceProvider RC2 = new RC2CryptoServiceProvider();

        byte[] IV = new byte[8];
        ICryptoTransform encryptor = RC2.CreateEncryptor(pbeKey, IV);

        MemoryStream msEncrypt = new MemoryStream();
        CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write);
        csEncrypt.Write(input, 0, input.Length);
        csEncrypt.FlushFinalBlock();

        return msEncrypt.ToArray();
    }
Run Code Online (Sandbox Code Playgroud)

虽然我的解密看起来像:

    public static byte[] DecryptString(byte[] input, string password, int originalSize)
    {
        PasswordDeriveBytes pderiver = new PasswordDeriveBytes(password, null);
        byte[] ivZeros = new byte[8];
        byte[] pbeKey = pderiver.CryptDeriveKey("RC2", "MD5", 128, ivZeros);

        RC2CryptoServiceProvider RC2 = new RC2CryptoServiceProvider();

        byte[] IV = new byte[8];
        ICryptoTransform decryptor = RC2.CreateDecryptor(pbeKey, IV);

        MemoryStream msDecrypt = new MemoryStream();
        CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Write);

        csDecrypt.Write(input, 0, originalSize);
       // csDecrypt.FlushFinalBlock();

        char[] decrypted = new char[input.Length];
        decrypted = System.Text.Encoding.UTF8.GetChars(msDecrypt.ToArray());
        return msDecrypt.ToArray();

    }
Run Code Online (Sandbox Code Playgroud)

char [] decrypted返回整个文件解密,除了文件</LudoData>以及解密时,我只能到达第一个<字符.

我一直在玩各种各样的东西,没有任何改变.在我的特定情况下,input长度为11296,originalSize大小为11290.但是,在解密时decrypted最终大小为11280.是什么赋予了!

Way*_*man 7

你有Flush()注释掉的原因吗?你试过完全关闭你的溪流吗?