Есть ли способ безопасно сохранить пароль в программе? То есть вшить в прогу пароль от локальной базы данных например. - C#
Формулировка задачи:
Замутил класс, буду наполнять его полезными методами. Возможно создам ещё один другой класс, не расширение.
Может делать что-то типа этого?
Или как быть? Пароль к базе нужен, база локальная и шифруется (SQL CE). Приложение как минимум обфусцируется. Что можно сделать? Если обфускатор шифрует строки, то этого достаточно? Ну чтобы при инициализации всё запихать в SecureString. И есть ли варианты, если не брать в расчёт обфускатор?
public static class ExtensionDataSecurity
{
public static SecureString ToSecureString(this string text)
{
SecureString secString;
unsafe
{
fixed (char* с = text)
{
secString = new SecureString(с, text.Length);
}
}
return secString;
}
}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;
}
}
}Решение задачи: «Есть ли способ безопасно сохранить пароль в программе? То есть вшить в прогу пароль от локальной базы данных например.»
textual
Листинг программы
namespace MyNamespace
{
public class Program
{
private static void Main(string[] args)
{
string password = "ultra secret password";
var t = password + "1";//это чтоб компилятор не вырезал код, в debug можно без этого
Console.ReadLine();
}
}
}