Click here to Skip to main content
15,886,199 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
I am trying to make a DES and triple DES file encrypter i cant find any articles or videos on DES file encryption which is why i asked my question. I have tried the following code but i get invalided key error and it doesn't matter if i change the IV from 16 to 8 i still get this error.

The code i tried:

C#
private void TDES_EncryptFile()
       {
           Stream myStream;
           SaveFileDialog saveFileDialog1 = new SaveFileDialog();
           saveFileDialog1.Filter = "Encrypted File (*.enc)|*.enc";
           saveFileDialog1.RestoreDirectory = true;

           if (saveFileDialog1.ShowDialog() == true)
           {
               if ((myStream = saveFileDialog1.OpenFile()) != null)
                   myStream.Close();

               string keyText = keys2.Text;
               byte[] keyBytes = ASCIIEncoding.ASCII.GetBytes(keyText);
               byte[] ivBytes = ASCIIEncoding.ASCII.GetBytes(keyText);
               string inputFile = Openfile.Text;
               string encryptedFile = saveFileDialog1.FileName;
               using (FileStream inputFileStream = File.Open(inputFile, FileMode.Open))
               using (FileStream outputFileStream = File.Open(encryptedFile, FileMode.Create))
               {
                   using (TripleDESCryptoServiceProvider tds = new TripleDESCryptoServiceProvider())
                   {
                       tds.Key = keyBytes;
                       tds.IV = ivBytes;

                       ICryptoTransform cryptoTransform = tds.CreateEncryptor();

                       using (CryptoStream cryptoStream = new CryptoStream(outputFileStream, cryptoTransform, CryptoStreamMode.Write))
                       {
                           byte[] buffer = new byte[inputFileStream.Length];
                           inputFileStream.Read(buffer, 0, buffer.Length);
                           cryptoStream.Write(buffer, 0, buffer.Length);
                           MessageBox.Show("The File Was Successfully Encrypted", "Encrypted!", MessageBoxButton.OK, MessageBoxImage.Information);
                       }
                   }
               }
           }
       }
Posted
Comments
F-ES Sitecore 28-Jun-15 8:12am    
And the error is....?
Yusuf_20_x 28-Jun-15 8:24am    
specified key is not a valid size for this algorithm

1 solution

It turns out i needed to md5-hash my key and then specify 8 character long IV


C#
byte[] keyBytes = md5.ComputeHash(utf.GetBytes(keyText));
byte[] ivBytes = ASCIIEncoding.ASCII.GetBytes(keyText.Substring(0, 8));
 
Share this answer
 

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