Click here to Skip to main content
15,032,967 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,
In the below code o am unable to decrypt the file
i am getting error as path used by other program.Iv dosenot match the block size

What I have tried:

namespace File_Encryption
{
    class AES
    {
        
        public  void EncryptFile(string inputFile, string outputFile)
        {
            try
            {
                string password = @"pwd123$"; // 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(Exception e)
            {
                
            }
        }
        ///<summary>
        /// Steve Lydford - 12/05/2008.
        ///
        /// Decrypts a file using Rijndael algorithm.
        ///</summary>
        ///<param name="inputFile"></param>
        ///<param name="outputFile"></param>
        public void DecryptFile(string inputFile, string outputFile)
        {        
            {
                string password = @"pwd123$"; // Your Key Here        
                UnicodeEncoding UE = new UnicodeEncoding();
                byte[] key = UE.GetBytes(password);        
                FileStream fsCrypt = new FileStream(inputFile, FileMode.Open);        
                RijndaelManaged RMCrypto = new RijndaelManaged();        
                CryptoStream cs = new CryptoStream(fsCrypt,RMCrypto.CreateDecryptor(key, key),CryptoStreamMode.Read);                            
                FileStream fsOut = new FileStream(outputFile, FileMode.Create);        
                int data;
                while ((data = cs.ReadByte()) != -1)
                fsOut.WriteByte((byte)data);        
                fsOut.Close();
                cs.Close();
                fsCrypt.Close();
            }
       }
    }
}


using System;
using System.IO;
using System.Text;
using System.Data;
using File_Encryption;
namespace dsfsd
{
	class Program
	{
		public static void Main()
		{
	      File_Encryption.AES a=new AES();
			a.EncryptFile("E:\\Anusha\\Path.txt","E:\\Anusha\\path.enc","123456");
			a.DecryptFile("E:\\Anusha\\Path.enc","E:\\Anusha\\path.dec","123456");		
	 }		             
  }
}
Posted
Updated 6-May-18 23:39pm

1 solution

Other's have made similar errors before (or used some code found in the web without verifying that it is correct).

See the answer at the SO thread c# - Specified initialization vector(IV) does not match the block size for this algorithm - Stack Overflow[^]. It explains very well what is wrong with your code.
   

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)




CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900