Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/33: Рейтинг темы: голосов - 33, средняя оценка - 4.61
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1

Есть ли способ безопасно сохранить пароль в программе? То есть вшить в прогу пароль от локальной базы данных например.

25.07.2011, 23:41. Показов 6949. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Замутил класс, буду наполнять его полезными методами. Возможно создам ещё один другой класс, не расширение.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    public static class ExtensionDataSecurity
    {
        public static SecureString ToSecureString(this string text)
        {
            SecureString secString;
            unsafe
            {
                fixed (char* с = text)
                {
                    secString = new SecureString(с, text.Length);
                }
            }
 
            return secString;
        }
    }
Может делать что-то типа этого?
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
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Security;
 
namespace ConsApp
{
    class Program
    {
        static SecureString securePassword;
 
        static void Main(string[] args)
        {
            String password = "password";
            securePassword = password.ToSecureString();
            //password = null; //Хотя после выхода из метода инициализации приложения эта 
                //строка всё равно "убъётся" сборщиком мусора. Думаю смысла нету это писать
            Console.ReadKey();
        }
    }
 
    public static class ExtensionDataSecurity
    {
        public static SecureString ToSecureString(this string text)
        {
            SecureString secString;
            unsafe
            {
                fixed (char* с = text)
                {
                    secString = new SecureString(с, text.Length);
                }
            }
 
            return secString;
        }
    }
}
Или как быть? Пароль к базе нужен, база локальная и шифруется (SQL CE). Приложение как минимум обфусцируется. Что можно сделать? Если обфускатор шифрует строки, то этого достаточно? Ну чтобы при инициализации всё запихать в SecureString. И есть ли варианты, если не брать в расчёт обфускатор?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.07.2011, 23:41
Ответы с готовыми решениями:

Если есть пароль от почты и пароль от панели управления хоста, можно восстановить вход в админку?
если есть пароль от почты и пароль от панели управления хоста, можно восстановить вход в админку?

Как программе через пароль получить доступ к базы данных?
Если я поставил пароль на базу данных. То как программе через пароль получить доступ до базы данных? Я хачу хранить список ников и...

Программа, которая требует у вас пароль, например 111, и если пароль правильный, то печатает сообщение «Молодец!».
Практическая работа Задание 6. С помощью оператора repeat напишите программу, которая требует у вас пароль, например 111, и если...

17
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
26.07.2011, 00:59
Лучший ответ Сообщение было отмечено как решение

Решение

тут такое дело..
берем например код
C#
1
2
3
4
5
6
7
8
9
10
11
12
namespace MyNamespace
{
    public class Program
    {
        private static void Main(string[] args)
        {
            string password = "ultra secret password";
            var t = password + "1";//это чтоб компилятор не вырезал код, в debug можно без этого
            Console.ReadLine();
        }
    }
}
запускаем, открываем Process explorer
выбираем процесс нашего приложения, правоклик->свойства
И видим такую картину...
Миниатюры
Есть ли способ безопасно сохранить пароль в программе? То есть вшить в прогу пароль от локальной базы данных например.  
5
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
26.07.2011, 01:03
так что защита которая начинается с String password = "password"; это не очень хорошая идея
1
 Аватар для ZI_DAN
4 / 4 / 0
Регистрация: 25.07.2011
Сообщений: 10
26.07.2011, 01:13
Думаю, хранить пароль в коде программы в любом случае небезопасно (даже в зашифрованном виде), т. к. программу можно разобрать на части кучей способов. Нормальный вариант — хранить пароль на удалённом сервере.
1
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
26.07.2011, 06:29  [ТС]
Цитата Сообщение от m0nax Посмотреть сообщение
так что защита которая начинается с String password = "password"; это не очень хорошая идея
Жесть, нет слов.
0
 Аватар для chessman1
167 / 96 / 23
Регистрация: 13.03.2011
Сообщений: 402
26.07.2011, 09:17
Перед выходом из программы myProg.exe установить права доступа на запись для файла myProg.exe, и перезаписать
его с паролём (желательно пароль зашифровать). Только нужно определиться по какому смещению от начала
файла myProg.exe будет находиться пароль.
0
334 / 270 / 18
Регистрация: 19.01.2011
Сообщений: 597
26.07.2011, 10:08
ZI_DAN, что имеется в виду под удаленным сервером? Своя разработка для получения сторки пароля по какому то запросу по зашифрованному каналу, или что-то типа OpenPGP?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
26.07.2011, 10:21
Цитата Сообщение от Winsor Посмотреть сообщение
для получения сторки пароля по какому то запросу по зашифрованному каналу
именно
0
 Аватар для ZI_DAN
4 / 4 / 0
Регистрация: 25.07.2011
Сообщений: 10
26.07.2011, 10:22
Не особенно принципиально своя или нет. Просто при вводе пароля нужно посыпать запрос на сервер, например, в Интернете, чтобы проверка корректности этого пароля происходила не внутри программы, а далеко за пределами компьютера пользователя. К серверу злоумышленник не сможет получить доступ (скорее всего). А ещё лучше всю программу перенести на сервер
0
334 / 270 / 18
Регистрация: 19.01.2011
Сообщений: 597
26.07.2011, 10:22
А реализован такой сервер на какой платформе?
0
 Аватар для ZI_DAN
4 / 4 / 0
Регистрация: 25.07.2011
Сообщений: 10
26.07.2011, 10:29
А реализован такой сервер на какой платформе?
Опять же без разницы. Это может быть веб-сайт в одну страницу, который просто проверяет правильный ли пароль был отправлен и высылает ответ (например, остальные данные для подключения к БД).
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
27.07.2011, 02:32  [ТС]
m0nax, как называется эта программа, в которой ты подглядел строки используемые в программе?
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
27.07.2011, 02:50
Process explorer, написал же еще в том посте
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
27.07.2011, 02:57
Цитата Сообщение от Casper-SC Посмотреть сообщение
m0nax, как называется эта программа, в которой ты подглядел строки используемые в программе?
достаточно в гуле набрать "декомпилятор C#"
1
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
27.07.2011, 07:24  [ТС]
Цитата Сообщение от m0nax Посмотреть сообщение
Process explorer, написал же еще в том посте
Да я что-то не обратил внимание. У меня оказывается давно эта прога есть, как написал вопрос, то сразу у себя и нашёл её.

Цитата Сообщение от Maxwe11 Посмотреть сообщение
достаточно в гуле набрать "декрмпилятор C#"
С норм обфускатором прога не декомпилилтся. Рефлектор, ILDASM тоже ничего не могут сделать.

Добавлено через 3 минуты
Всё же интересно, неужели нельзя что нибудь придумать другое? Может использовать массив char со сдвигом (честно говоря как это со сдвигом, что-то смутно представляю, так как ниразу не пользовался им) или ещё как нибудь и при посроении SecureString извертеться?
0
67 / 67 / 9
Регистрация: 18.04.2011
Сообщений: 124
27.07.2011, 08:53
Casper-SC, а втупую хэшировать пароль вы не хотите?)

C#
1
2
3
4
5
6
7
8
9
int passHashed=password.GetHashCode(); //значение вычисляется один раз и прописывается в коде/ресурсах/файле
string pass;
Console.ReadLine(pass);
if (pass.GetHashCode()==passHashed) {
//все круто 
}
else {
Console.WriteLine("Invalid password");
}
Добавлено через 14 минут
То есть, лучше, конечно, не настолько втупую, а как-нибудь так:
C#
1
2
System.Security.Cryptography.SHA256 hasher=new System.Security.Cryptography.SHA256Managed();
byte[] result=hasher.ComputeHash(data);
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
27.07.2011, 11:18
С норм обфускатором прога не декомпилилтся. Рефлектор, ILDASM тоже ничего не могут сделать.
все что на .net декомпилится, обфускатор лишь усложняет восприятие такой программы человеком
1
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
28.07.2011, 08:35
Casper-SC, не так давно я занимался решением проблемы защиты кода. Пришел к такому выводу, чем лучше защита, тем дороже она стоит. Бесплатных (взломанных) вариантов найти не удалось
Если есть желание онакомится, могу выложить пару названий.

И глянь вот это
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.07.2011, 08:35
Помогаю со студенческими работами здесь

Есть ли способ связать Grid базы данных с TreeView?
subj.

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

Заразил доки и поставил пароль а пароль забыл, не как его не взломать или не скинуть пароль с архива?
Зарарил доки и поставил пароль а пароль забыл, не как его не взломать или не скинуть пароль с архива?

Проверить, есть ли пароль в массиве
Есть такой код: string z; string x = {"11111ab", "22222cd", "33333ef","44444gh","55555ij","66666kl"}; cin » z; if (z == x) ...

Пароль базы данных
Здравствуйте. Во вложении пустая БД,содержимое удалено для уменьшения "веса". Суть проблемы. База защищена паролем,...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью 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 , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru