none
Не получается расшифровка ключа. RRS feed

  • Вопрос

  • RSAParameters param =newRSAParameters();
    RSACryptoServiceProvider rsacsp =newRSACryptoServiceProvide();
    DateTime time =DateTime.Now;
    bool f =File.Exists(@"D:\key.txt");
    if (f == true)
    {
    byte[] readDate =newbyte[10];
    FileStream fsr =newFileStream(@"D:\key.txt",FileMode.Open);
    fsr.Seek(128,SeekOrigin.Begin);
    fsr.Read(readDate, 0, 10);
    fsr.Close();
    ASCIIEncoding encod1 =newASCIIEncoding();
    string strDate = encod1.GetString(readDate);
    MessageBox.Show(strDate," ");
    DateTime conv =DateTime.Parse(strDate);
    TimeSpan LifeKey = time.Subtract(conv);
    if (LifeKey.Days >= 30)
    { 
    MessageBox.Show(" ", " "); 
    RijAlg.GenerateKey();
    Key = RijAlg.Key;
    param = rsacsp.ExportParameters(true);
    byte[] encData = rsacsp.Encrypt(RijAlg.Key,false); 
    try
    {
    FileStream fs2 =newFileStream(@"D:\key.txt",FileMode.Create);
    fs2.Seek(0,SeekOrigin.Begin);
    fs2.Write(encData, 0, encData.Length);
    string date =Convert.ToString(time.Day) +"." +Convert.ToString(time.Month) +"." +Convert.ToString(time.Year);
    ASCIIEncoding encod =newASCIIEncoding();
    byte[] dt = encod.GetBytes(date);
    fs2.Seek(encData.Length,SeekOrigin.Begin);
    fs2.Write(dt, 0, dt.Length);
    fs2.Close();MessageBox.Show(" ", " ");
    }
    catch (IOException e1) 
    {
    MessageBox.Show(e1.Message);
    }
    } 
    else{FileStream fsr1 =newFileStream(@"D:\key.txt",FileMode.Open);
    byte[] DecData =newbyte[128];
    fsr1.Seek(0,SeekOrigin.Begin);
    fsr1.Read(DecData, 0, 128);
    fsr1.Close();
    Key= rsacsp.Decrypt(DecData,false); // вот здесь возникает проблема}

    Здравствуйте! Целое утро бьюсь над проблемой: шифрую симметричный ключ с помощью RSA и записываю в файл в коней дописываю дату создания ключа.

    Вот когда пытаюсь считать ключ, при дешифровании вылетает исключение "Плохие данные", хотя массив заполняется данными, которые получились при шифровании.Не пойму в чем проблема. Причем если же сразу записать файл закрыть потом, не выходя из программы, снова открыть то все расшифровывается.

     

     

    Заранее спасибо за помощь.

    • Изменено Кирилл88 16 апреля 2010 г. 7:58 код вставился не правильно
    • Перемещено I.Vorontsov 16 апреля 2010 г. 8:00 (От:Visual C#)
    16 апреля 2010 г. 7:55

Ответы