0

我正在设计一个密码加密应用程序,并希望使用用户选择的密码对软件首次启动时创建的数据库进行密码保护。

那么如何将应用程序设置为在其生命周期中仅运行一次特定部分?以及如何将文本框值分配给 SQL Compact 版数据库密码?

PS 我将使用 SHA256 进行随机盐和散列的加密,以防有人想告诉我更好的方法?

请帮忙

4

1 回答 1

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;");

我所说的标志是指您第一次填充的任何字段。例如,在我的网络应用程序中,我使用了超级管理员记录作为标志。我查询超级管理员的表以查找是否有任何记录。如果有记录。我不允许打开创建超级管理员页面的页面。如果您的应用中没有此类数据。创建一个包含一列的表,并在您设置一次密码后,在该表中插入值。并且每当请求表单时,请检查此表是否有任何记录。(或者在 tinyint 类型的列中插入值 0 并在设置密码时将其设为一个)

于 2013-10-07T13:52:54.367 回答