Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
.NET 4.x

Добавить файл в ресурсы в готовой программе

16.09.2016, 18:59. Показов 2093. Ответов 25

Студворк — интернет-сервис помощи студентам
Здравствуйте, наверное глупый вопрос, но все таки хотелось бы уточнить.
Можно ли в скомпилированном exe добавить какой либо файл в ресурсы?

P.s. Суть в том, что я написал программу запоминания паролей, шифрованные данные в данный момент хранятся в файлах.
Происходит это так: в программе я нажимаю "добавить" и ввожу какой либо "логин:пароль", потом шифрую этот текст и сохраняю в файл, после чего наименования всех таких сохраненные файлов я отображаю в форме listview. Хотелось бы придать мобильности программке и не таскать за собой кучу файлов с паролями.

Если есть хорошие идеи реализации мобильности, буду благодарен если поделитесь
P.s. В дальнейшем хочу сделать облачное хранилище, чтобы все данные подгружались с сервера, но это уже другая история..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.09.2016, 18:59
Ответы с готовыми решениями:

CodeDOM. Как поместить файл в ресурсы и как добавить ссылку на сборку из ресурсов?
Здравствуйте, у меня есть функция которая собирает программу из исходного кода на c# public void Build(string name, string sourse,...

Как реализовать обработку исключений в двух функциях в готовой программе?
Здравствуйте, прошу помощи т.к сам не состоянии. Имеются две функции одна скачивает архив с сайта при нажатии на кнопку, а другая...

Добавить dll в ресурсы, потом выгружать в папку с программой
Здравствуйте. Не хочу делать инсталятор программы, т.к. у программы есть всего 1 зависимый dll файл. Хочу добавить этот dll в ресурсы, а...

25
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
17.09.2016, 02:28
Цитата Сообщение от Nalik Посмотреть сообщение
не таскать за собой кучу файлов
Хранить в одном файле, а лучше в БД.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
17.09.2016, 08:33
Цитата Сообщение от Nalik Посмотреть сообщение
я написал программу запоминания паролей, шифрованные данные в данный момент хранятся в файлах.
Посмотрите прикрепленный архив. Там примерно то же самое реализуется.
Цитата Сообщение от Nalik Посмотреть сообщение
В дальнейшем хочу сделать облачное хранилище, чтобы все данные подгружались с сервера
Хранить пароли на чужом сервере - не уверен, что хорошая идея в плане безопасности, если это ваши пароли.
Вложения
Тип файла: rar Password Saver.rar (620.7 Кб, 7 просмотров)
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
17.09.2016, 13:25  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
Хранить пароли на чужом сервере - не уверен, что хорошая идея в плане безопасности, если это ваши пароли.
Как сказать чужой, у меня есть арендуемый хостинг (не сервер, хотя в данном случае разницы нет). Но он естественно физически расположен не у меня

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

Во вложение программа, если интересно можете глянуть
Вложения
Тип файла: rar ps.rar (636.9 Кб, 2 просмотров)
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
17.09.2016, 13:28
Цитата Сообщение от Nalik Посмотреть сообщение
метод шифрования с закрытым ключом
Ну вот что говорит об этом гугл. Почитайте и выбирайте что вам подойдет.
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
17.09.2016, 13:39  [ТС]
P.s. Посмотрел прикрепленный архив, хранить все в одном файле, да эта идея всяко лучше, чем хранить в куче разных файлах, но все равно не то, что я хотел)
P.s2. Хотя я конечно реализую хранение все таки в одном файле, это все равно будет лучше

Добавлено через 4 минуты
Цитата Сообщение от insite2012 Посмотреть сообщение
Ну вот что говорит об этом гугл. Почитайте и выбирайте что вам подойдет.
"Шифрования с закрытым ключом — это RC2, RC4, RC5, тройной DES (triple DES) и IDEA, DES"
Да я читал все эти статьи, я хотел бы узнать ваше мнение на основе личного опыта А что мне подойдет лучше я конечно выберу) Просто хотелось бы услышать рекомендации от уже знакомых людей (на форуме все таки вас постоянно вижу) а статьи в интернете пишет неизвестно кто
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
17.09.2016, 13:50
Лучший ответ Сообщение было отмечено Nalik как решение

Решение

Цитата Сообщение от Nalik Посмотреть сообщение
я хотел бы узнать ваше мнение на основе личного опыта
Я бы выбрал AES.
1
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
20.09.2016, 15:42  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
Я бы выбрал AES.
Воспользовался вашим советом, спасибо)

Цитата Сообщение от Sanya_sa Посмотреть сообщение
Хранить в одном файле, а лучше в БД.
Просмотрел инфу на скорую руку, увидел целую кучу разных вариантов баз: .mdb, .mdf, .sdf, .db и т.д.
И разные варианты взаимодействия с этими Бд. Посоветуете что лучше использовать для моих целей?
И в таком случае, хотелось бы иметь возможность установить пароль на локальную БД, чтобы не зная его невозможно её было открыть в других редакторах. Такое возможно?

А да, основным условием при этом является отсутствие установленых пакетов типа SQL Server, установлен будет только Net Framework
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
20.09.2016, 15:54
Лучший ответ Сообщение было отмечено Nalik как решение

Решение

Nalik,
Ну хз ) может SQLite? Простая, никаких серверов не нужно. Ну или access (ее правда все называют не до СУБД, хотя по мне для простенькой структурированной сохранки данных пойдет. И .NET с ней на ура дружит)?
1
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
20.09.2016, 15:59  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
может SQLite?
Тоже подумал про неё, вычитал из другой темы) А пароль на неё установить можно, не знаете?
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
20.09.2016, 16:09
Цитата Сообщение от Nalik Посмотреть сообщение
А пароль на неё установить можно, не знаете?
Неа)
можно данные писать шифрованые (как вариант)
1
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
20.09.2016, 16:12  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Неа)
можно данные писать шифрованые (как вариант)
Понял, спасибо)
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18259 / 14184 / 5366
Регистрация: 17.03.2014
Сообщений: 28,870
Записей в блоге: 1
20.09.2016, 16:47
Цитата Сообщение от Nalik Посмотреть сообщение
А пароль на неё установить можно, не знаете?
Можно. Установка пароля:
C#
1
2
3
4
5
using (SQLiteConnection conn = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;"))
{
    conn.SetPassword("password");
    conn.Open();
}
Подключение с паролем:
C#
1
2
3
4
using (SQLiteConnection conn = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;Password=password;"))
{
    conn.Open();
}
2
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
20.09.2016, 21:14  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Можно. Установка пароля:
Здорово, спасибо!)

Добавлено через 4 часа 12 минут
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Подключение с паролем:
Правильно создаю таблицу в запароленной БД?
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
#region Создание БД
            SQLiteConnection.CreateFile(databaseName);
            #endregion
            #region Установка пароля
            using (SQLiteConnection conn = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;"))
            {
                conn.SetPassword(Form1.key);
                conn.Open();
            }
 
            SQLiteConnection.CreateFile(databaseName);
            SQLiteConnection connection = new SQLiteConnection("Data Source=" + databaseName + ";Version=3;");
            connection.SetPassword(Form1.key);
            connection.Open();
            #region Создание таблицы хранения данных
            SQLiteCommand command = new SQLiteCommand("CREATE TABLE data" +
            "(id INTEGER PRIMARY KEY," + //id
            "groups LONGTEXT," + //Группа 
            "name LONGTEXT," + //Наименование
            "login LONGTEXT," + //Логин
            "password LONGTEXT," + //Пароль
            "description LONGTEXT," + //Описание
            "date_created LONGTEXT," + //Дата создания
            "date_changes LONGTEXT);" //Дата редактирования
            , connection);
            command.ExecuteNonQuery();
            #endregion
            connection.Close();
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18259 / 14184 / 5366
Регистрация: 17.03.2014
Сообщений: 28,870
Записей в блоге: 1
20.09.2016, 21:29
Цитата Сообщение от Nalik Посмотреть сообщение
Правильно создаю таблицу в запароленной БД?
По моему нет т.к. ты почему-то не понимаешь разницы между установкой пароля (которую нужно сделать всего один раз) и входом под этим паролем.
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
20.09.2016, 21:42  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
По моему нет т.к. ты почему-то не понимаешь разницы между установкой пароля (которую нужно сделать всего один раз) и входом под этим паролем.
Разницу понимаю, не понимаю как это сделать
Если честно, у меня последние дней 5 глаза по 5 рублей от работы с БД

Так вроде правильно должно быть?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
string password = "password";
            #region Создание БД
            SQLiteConnection.CreateFile(databaseName);
            #endregion
            #region Установка пароля
            using (SQLiteConnection conn = new SQLiteConnection("Data Source=" + databaseName +";Version=3;"))
            {
                conn.SetPassword(password);
                conn.Open();
            }
            #endregion
            using (SQLiteConnection conn = new SQLiteConnection("Data Source=" + databaseName +";Version=3;Password="+ password+";"))
            {
                conn.Open();
                #region Создание таблицы хранения данных
                //id, Группа, Наименование, Логин, Пароль, Описание, Дата создания, Дата редактирования
                SQLiteCommand command = new SQLiteCommand("CREATE TABLE data(id INTEGER PRIMARY KEY,groups LONGTEXT,name LONGTEXT,login LONGTEXT,password LONGTEXT,description LONGTEXT,date_created LONGTEXT,date_changes LONGTEXT);", conn);
                command.ExecuteNonQuery();
                #endregion
                conn.Close();
            }
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18259 / 14184 / 5366
Регистрация: 17.03.2014
Сообщений: 28,870
Записей в блоге: 1
20.09.2016, 21:44
Цитата Сообщение от Nalik Посмотреть сообщение
Так вроде правильно должно быть?
Вроде да.
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
20.09.2016, 21:46  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Вроде да.
На SQLite нет нормального wiki, не знаете? Что-то я не смог найти)
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18259 / 14184 / 5366
Регистрация: 17.03.2014
Сообщений: 28,870
Записей в блоге: 1
20.09.2016, 22:03
Nalik, я пользовался только документацией на официальном сайте. Для System.Data.SQLite есть справка в формате chm.
1
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
21.09.2016, 22:31  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
По моему нет т.к. ты почему-то не понимаешь разницы между установкой пароля (которую нужно сделать всего один раз) и входом под этим паролем.
Можно еще 2 вопросика по теме?
1. Я установил пароль на вход в БД, злоумышленник сможет его узнать, он хранится где-то в открытом виде? (вообще было бы интересно почитать/узнать каким именно образом устанавливается пароль на БД, весь файл шифруется этим паролем или всего лишь перед отдачей данных идет проверка на соответствие введенного пароля и зашитого в БД).
2. Возможно ли изменить пароль от БД извне, не зная текущего пароля? (На сколько я понимаю, сейчас чтобы изменить пароль и вызвать свойство ChangePassword, нужно сначала соединиться с БД под паролем, но лучше уточнить у более опытного человека)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.09.2016, 22:31
Помогаю со студенческими работами здесь

Ресурсы в отдельный файл
Есть некоторое количество аудиофайлов, которые не часто используются, но много весят из-за .wav Как вынести их за пределы .exe? Чтобы в...

Добавить деструктор к готовой программе
#include <iostream> #include <conio.h> using std::cout; #pragma hdrstop #pragma argsused class vect { public: vect(int =...

Как добавить файл в ресурсы?
Нужно добавить .h файл в ресурсы вида: unsigned char funky = {1, 2, 3}... Но Builder пишет: Error: RLINK32: Unsupported 16bit...

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

Как в программе можно открыть файл, с уже готовой базой данных в Access
Скажите как в программе можно открыть файл, с уже готовой базой данных в Access


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru