Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/27: Рейтинг темы: голосов - 27, средняя оценка - 4.59
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 34

Шифрование файла

17.07.2010, 10:55. Показов 5693. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня суток, захотел тут зашифровать свой файл, файл сохраняю построчно с помощью StrimWriter, загружаю соответственно с помощью StrimReader.

Сохраняю и загружаю так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/// <summary>
        /// Загрузка базы данных по умолчанию
        /// </summary>
        private void Load_Data_base()
        {
 
            int rowCount = data_Base.Rows.Count;
            StreamReader sr = new StreamReader(readPathBase() + readNamebase() + ".TBD", Encoding.Unicode,true );
                string str = sr.ReadLine();
                for (int i = rowCount; str != null; i++)
                {
                    data_Base.Rows.Add();
                    data_Base.Rows[i].Cells[0].Value = codding.codder(str,false);
                    for (int j = 1; j <= 7; j++)
                    {
                        data_Base.Rows[i].Cells[j].Value = codding.codder(sr.ReadLine(),true);
                    }
                    str = sr.ReadLine();
                }
                sr.Close();
               
 
 
        }
        /// <summary>
        /// Cохранение базы данных по умолчанию
        /// </summary>
        private void Save_Data_base()
        {
            data_Base.Sort(this.DEPARTAMENT, ListSortDirection.Ascending);
            int rowCount = data_Base.Rows.Count;
            StreamWriter sw = new StreamWriter(readPathBase() + readNamebase() + ".TBD",true,Encoding.Unicode);
            for (int i = 0; i < rowCount; i++)
            {
                for (int j = 0; j <= 7; j++)
                {
                    sw.WriteLine(codding.codder(data_Base.Rows[i].Cells[j].Value.ToString(),true));
                }
 
            }
            sw.Close();
        }
Кодирую с помощью модифицированного класса:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
namespace crypted
{
    public class codding
    {
        /// <summary>
        /// кодирование строки
        /// </summary>
        /// <param name="cod">ресурс</param>
        /// <param name="b">true -кодирование/false - раскодирование</param>
        /// <returns></returns>
        static public  string codder(string cod, bool b)
        {
            UnicodeEncoding ByteConverter = new UnicodeEncoding();
            byte[] dataToEncrypt = ByteConverter.GetBytes(cod);
            byte[] encryptedData;
            byte[] decryptedData;
            using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
            {
 
                if(b)
                {
                    //Pass the data to ENCRYPT, the public key information 
                    //(using RSACryptoServiceProvider.ExportParameters(false),
                    //and a boolean flag specifying no OAEP padding.
                    encryptedData = RSAEncrypt(dataToEncrypt, RSA.ExportParameters(false), false);
                    return ByteConverter.GetString(encryptedData);
                }
                else
                {
                    //Pass the data to DECRYPT, the private key information 
                    //(using RSACryptoServiceProvider.ExportParameters(true),
                    //and a boolean flag specifying no OAEP padding.
                    decryptedData = RSADecrypt(dataToEncrypt, RSA.ExportParameters(true), false);
                    return ByteConverter.GetString(decryptedData);
                }
                //Display the decrypted plaintext to the console. 
               //Console.WriteLine("Decrypted plaintext: {0}", ByteConverter.GetString(decryptedData));
            }
        }
        static public byte[] RSAEncrypt(byte[] DataToEncrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding)
        {
            try
            {
                byte[] encryptedData;
                //Create a new instance of RSACryptoServiceProvider.
                using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
                {
 
                    //Import the RSA Key information. This only needs
                    //toinclude the public key information.
                    RSA.ImportParameters(RSAKeyInfo);
 
                    //Encrypt the passed byte array and specify OAEP padding.  
                    //OAEP padding is only available on Microsoft Windows XP or
                    //later.  
                    encryptedData = RSA.Encrypt(DataToEncrypt, true);
                }
                return encryptedData;
            }
            //Catch and display a CryptographicException  
            //to the console.
            catch (CryptographicException e)
            {
                return null;
            }
 
        }
 
        static public byte[] RSADecrypt(byte[] DataToDecrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding)
        {
            try
            {
                byte[] decryptedData;
                //Create a new instance of RSACryptoServiceProvider.
                using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
                {
                    //Import the RSA Key information. This needs
                    //to include the private key information.
                    RSA.ImportParameters(RSAKeyInfo);
 
                    //Decrypt the passed byte array and specify OAEP padding.  
                    //OAEP padding is only available on Microsoft Windows XP or
                    //later.  
                    decryptedData = RSA.Decrypt(DataToDecrypt, true);
                }
                return decryptedData;
            }
            //Catch and display a CryptographicException  
            //to the console.
            catch (CryptographicException e)
            {
                return null;
            }
 
        }
        
    }
}
Собственно ошибка происходи при загрузке, и декордирование не происходит, пишет что данные для декодирования не корректны, предполагаю что в файл сохраняю неправильно.

П.С. Может есть более легкий способ зашифровать/расшифровать файл
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.07.2010, 10:55
Ответы с готовыми решениями:

Шифрование файла
Всем привет. Есть класс, который шифрует и дешифрует файл. Но проблема с кириллицей, есть ли возможность подключить ее? public...

Шифрование файла
Подскажите пожалуйста как надежно зашифровать от пользователя важную информацию в файле (логины, пароли)

Шифрование XML файла
Добрый день. Прошу помощи в понимании, где ошибка. Есть код, который шифрует XML файл и тут же его расшифровывает ...

2
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
17.07.2010, 11:03
Цитата Сообщение от kiss_a Посмотреть сообщение
П.С. Может есть более легкий способ зашифровать/расшифровать файл
Посмотрите пример здесь, правда на английском. Правда, не думаю, что он проще, но, возможно, более работоспособен.
1
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 34
17.07.2010, 16:15  [ТС]
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Посмотрите пример здесь, правда на английском. Правда, не думаю, что он проще, но, возможно, более работоспособен.
С момощью этого примера нельзя зашифровать кирилицу
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.07.2010, 16:15
Помогаю со студенческими работами здесь

Шифрование файла в памяти
Мне нужно шифровать и расшифровывать файл ключом, наверное, при помощи AES. Но расшифровывать мне его надо без записи на диск, т.е....

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

Шифрование файла (Цифровая система тайнописи)
Всем доброго времени суток! Необходимо зашифровать файл цифровой системой тайнописи. Соответствие цифр и букв необходимо выбрать...

Шифрование строки для конфигурационного файла
Хотел бы в параметрах конфигурационного файла строковые значения некоторых параметров указывать в зашифрованном виде. Для этого мне нужно...

Шифрование файла. Хранение ключа в реестре
Всем доброго времени суток! На просторах форума найдена реализация шифрования\дешифрования файла при помощи AES алгоритма ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
ПЛИС
zxcha1ka_ 27.01.2026
AHDL Разработать программы для синтеза следующих устройств: 1. Параллельного регистра 4-х разрядного с синхронной загрузкой и асинхронным сбросом (обнулением); Пoмoгитe пoжaлyйстa
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru