Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 17:36   #1
kelheor
 
Регистрация: 10.04.2011
Сообщений: 3
По умолчанию Шифрование .NET

Здравствуйте. Появилась следующая проблема. Пытаюсь реализовать шифрование файлового потока.
Есть следующий код:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security;
using System.Security.Cryptography;
using System.IO;

namespace Crypter
{
    class Program
    {
        static void Main(string[] args)
        {

            //Шифратор
            DESCryptoServiceProvider mDES = new DESCryptoServiceProvider();
            mDES.GenerateIV();
            mDES.GenerateKey();
            byte[] Key = mDES.Key;
            byte[] IV = mDES.IV;

            FileStream fsOutput = new FileStream("temp.dat", FileMode.Create, FileAccess.Write);

            ICryptoTransform desEncript = mDES.CreateEncryptor(Key, IV);
            CryptoStream sCrypto = new CryptoStream(fsOutput, desEncript, CryptoStreamMode.Write);
            StreamWriter s = new StreamWriter(sCrypto);
            s.WriteLine("Hello world!");
            sCrypto.Close();
            fsOutput.Close();
            
            //Дешифратор
            DESCryptoServiceProvider mDES2 = new DESCryptoServiceProvider();
            FileStream fsInput = new FileStream("temp.dat", FileMode.Open, FileAccess.Read);
            ICryptoTransform desDecript = mDES2.CreateDecryptor(Key,IV);
            CryptoStream sDecrypto = new CryptoStream(fsInput, desDecript, CryptoStreamMode.Read);
            StreamReader r = new StreamReader(sDecrypto);
            Console.WriteLine(r.ReadToEnd()); 
            sDecrypto.Close();
            fsInput.Close();

            
        }
    }
}
По идее при дешифровании на консоль должно быть выведено Hello World!. Однако ничего не выводится. Можете подсказать, в чем проблема?
kelheor вне форума Ответить с цитированием
Старый 17.04.2011, 13:36   #2
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Цитата:
Можете подсказать, в чем проблема?
Ты забыл закрыть StreamWriter.

Код:
s.WriteLine("Hello world!");
s.Close();
sCrypto.Close();
fsOutput.Close();
P.S. Вместо Close() лучше использовать конструкцию using.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net gammaray Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 22.11.2010 17:36
Шифрование VB.NET DimkraS Помощь студентам 0 27.02.2010 06:24