2013-10-07 2 views
0

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

Как я могу настроить приложение для запуска определенной части только один раз за всю свою жизнь? И как назначить значение текстового поля для пароля базы данных SQL Compact Edition?

P.S Я буду использовать SHA256 для шифрования со случайными солями и хешированием, на случай, если кто-то захочет сказать мне лучший способ?

Просьба помочь

ответ

1

Для первой части, как выполнить один раз. отметьте какое-либо поле в качестве флага в вашей базе данных или создайте новую таблицу с флагами и проверьте его значение на Form_Load, если флаг найден, откройте другую форму по умолчанию, такую ​​как панель инструментов и т. д.

для второй части, получите полное понимание и атаковать вашу проблему, отсюда: http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlceengine.compact(VS.80).aspx

SqlCeEngine engine = new SqlCeEngine("Data Source = db.sdf"); 
engine.Compact(null); 
engine.Compact("Data Source=; Password =pass;"); 

Под флагом, я имею в виду любое поле, которое вы бы заселить в первый раз. Например, в моем веб-приложении я использовал запись супер администратора как флаг. Я запрашиваю таблицу супер администратора, чтобы узнать, есть ли какая-либо запись. если есть запись. Я бы не стал открывать страницу для создания страницы супер администратора. Если таких данных нет в вашем приложении. создайте таблицу с одним столбцом, а когда вы установите пароль один раз, вставьте значение в эту таблицу. и когда требуется запросить форму, проверьте эту таблицу для любых записей. (В качестве альтернативы введите значение 0 в столбце типа tinyint и введите его при установке пароля).

+0

Не могли бы вы рассказать о «флагове»? как бы я это сделал? Мои мысли состояли в том, чтобы проверить, существовала ли база данных, если она это сделала, вместо этого открыть другую форму? –

+0

По флагом, я имею в виду любое поле, которое вы будете заполнять в первый раз. либо используемое поле в вашем приложении, либо специальное поле в специальной таблице, созданной для этой цели. читать подробности выше. – Tauseef

Смежные вопросы