Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Rijndael IV尺寸不';不匹配块大小,但它应该_C#_Encryption_Aes_Rijndael - Fatal编程技术网

C#Rijndael IV尺寸不';不匹配块大小,但它应该

C#Rijndael IV尺寸不';不匹配块大小,但它应该,c#,encryption,aes,rijndael,C#,Encryption,Aes,Rijndael,我有以下代码: private void EncryptFile(string inputFile, string outputFile, string pass) { try { string password = @pass; UnicodeEncoding UE = new UnicodeEncoding(); byte[] key = UE.GetBytes(password)

我有以下代码:

private void EncryptFile(string inputFile, string outputFile, string pass)
    {
        try
        {
            string password = @pass;
            UnicodeEncoding UE = new UnicodeEncoding();
            byte[] key = UE.GetBytes(password);
            byte[] iv = new byte[128];
            for(int i =0; i < iv.Length; i++)
            {
                iv[i] = Convert.ToByte(true);
            }
            string cryptFile = outputFile;
            FileStream fsCrypt = new FileStream(cryptFile, FileMode.Create);

            RijndaelManaged RMCrypto = new RijndaelManaged();
            MessageBox.Show(RMCrypto.BlockSize + "\n" + iv.Length);
            CryptoStream cs = new CryptoStream(fsCrypt,
                RMCrypto.CreateEncryptor(key, iv),
                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(Exception ex)
        {
            //MessageBox.Show("Encryption failed!", "Error");
            MessageBox.Show(ex.Message);
        }
    }
private void加密文件(字符串输入文件、字符串输出文件、字符串传递)
{
尝试
{
字符串密码=@pass;
Unicode编码UE=新的Unicode编码();
byte[]key=UE.GetBytes(密码);
字节[]iv=新字节[128];
for(int i=0;i
但是我对静脉注射的尺寸有问题。使用一个简单的消息框,我发现(可能)块大小是128。因此,我将IV设置为一个128字节的数组,其中包含要测试的“1”值。第一个消息框确认blocksize和IV数组长度均为128。但是,我得到一个异常,即指定的初始化向量(IV)与此算法的块大小不匹配。

这是为什么?如何解决此问题?

AES是128位。不是字节。点点滴滴

AES竞赛的获胜者Rijndael支持128、192和256位的块和密钥大小,但在AES中,块大小始终为128位。AES标准未采用额外的块大小


啊,我怎么会错过这个。。非常感谢。(请允许我尽快接受答案)另请参阅
BlockSize
文档,其中详细说明了“位”