none
CryptographicException "Плохие данные." при расшифровке данных зашифрованных алгоритмом DES. RRS feed

  • Вопрос

  • Здравствуйте у меня есть класс Decryption и Encryption.
    Класс Decryption декодирует информацию закодированную классом Encryption.
    Но если при запуске программы файл в котором должны храниться закодированные данные пустой, то появляется ошибка:
    System.Security.Cryptography.CryptographicException: "Плохие данные."
    Строка 19 класса Decryption.
    Как исправить?

    class Decryption
        {
            public string DecryptionReuslt;
            public Decryption()
            {
                FileStream stream = new FileStream("Data\\Pocket.data",
                                  FileMode.Open, FileAccess.Read);
     
                DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider();
     
                cryptic.Key = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
                cryptic.IV = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
     
                CryptoStream crStream = new CryptoStream(stream,
                    cryptic.CreateDecryptor(), CryptoStreamMode.Read);
     
                StreamReader reader = new StreamReader(crStream);
     
                string data = reader.ReadToEnd();
                DecryptionReuslt = data;
     
                reader.Close();
                stream.Close();
     
            }
     
        }
    class Encryption
        {
            public Encryption(string NewEncrypt)
            {
     
                FileStream stream = new FileStream("Data\\Pocket.data", FileMode.OpenOrCreate, FileAccess.Write);
     
                DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider();
     
                cryptic.Key = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
                cryptic.IV = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
     
                CryptoStream crStream = new CryptoStream(stream,
                   cryptic.CreateEncryptor(), CryptoStreamMode.Write);
     
     
                byte[] data = ASCIIEncoding.ASCII.GetBytes(NewEncrypt);
     
                crStream.Write(data, 0, data.Length);
     
                crStream.Close();
                stream.Close();
                
            }
     
        }



    19 ноября 2017 г. 10:37

Ответы