C# (.NET 4.0、SQL CE 4.0 データベース) を使用してスモール ビジネス アプリケーションを作成しています。データベースは暗号化されています (SQL CE はデータベースの暗号化をサポートしています) が、私の知る限り、 http://msdn.microsoft.com/en-us/library/aa257373( v=sql.80 ).aspxパスワードから:
最大 40 文字です。文字、記号、数字、または組み合わせを含めることができます。回復できません。
ユーザーはアプリケーションのパスワードを入力しますが、これはおそらく複雑で安全なものではありません。したがって、データベース暗号化用のより安全なパスワードを作成するために、何らかの方法でユーザー パスワードを変更したいと考えました。私が知っていることから、パスワードからバイトを派生させる Rfc2898DeriveBytes Classがあります。しかし、データベースのパスワードには有効な文字 ( SQL Server CE パスワードに許可された文字? ) が必要です。つまり、 toBase64String()を使用できない可能性があります。
これまでの私の考えは、データベースのランダムで安全なパスワードを作成し、それをファイルに保存することです。ファイルは、ユーザーパスワードから派生したキーで AES256 を使用して暗号化されます。これを行うより良い方法はありますか?
また、それぞれがアプリケーション用の独自のパスワードを持つ複数のユーザーが、同じデータベース パスワードで同じデータベースにアクセスできるようにするにはどうすればよいでしょうか?
お時間とご回答ありがとうございます