2017-12-18 4 views
0

.NET C#でSoft-Phoneアプリケーションを作成しようとしていますが、アプリケーションにユーザー名とパスワードを格納することに失敗しました。私はSQL Serverを使用することを考えましたが、私は平文でパスワードを格納することに慣れていないので、これを達成するために他にどのようなオプションがあるのだろうかと思います。このプログラムを開発しながら、ここに私の制約です:サードパーティのログイン用のパスワードを保存します

  • はしっかりとパスワードは使用して認証するために別のサーバに送信する必要があるとして、それはパスワードをハッシュすることはできません
  • ユーザー名とパスワードの情報を保存する必要があります。
  • ログイン情報は、プログラムの実行の間に持続しなければなりません。ユーザは、プログラムを最初に実行したときに一度だけログイン情報を保存し、その後にプログラムがロードされるたびに、自動的にユーザ情報をロードし、ユーザに再度パスワードを要求せずにサーバで認証する必要があります。
  • データベースはアプリケーション自体に組み込まれているため、ユーザーのコンピュータにローカルに格納されます。

これは、C#でデータベース機能を実装するというアイデアで初めてのことです。どんな提案や提案も歓迎です。私はSQLの使用に精通していますが、そこに代替データベースがあれば、私がしようとしているものでうまくいくはずです。私はそれを試してみます。

+0

あなたの最初と2番目と最後の要求は相互に排他的です。パスワードがハッシュされていない場合、クライアントのコンピュータに安全な方法でパスワードを保存することはできません。ハッシュされていなければ、自分のサーバに安全に保存することさえできません。 –

+0

ハッシングは、現在の入力(ハッシュ/ソルト)のパスワードを、データベースに格納されているハッシュ/ソルトPWと比較する唯一の方法です。あなたはおそらく、パスワードの逆の暗号化を探している可能性が高い--PGPを考えてみよう。最初の実行時にプライベート/パブリックキーを作成し、クライアント上のWindowsキーストアに格納して、それをSQLデータベースに格納する前に暗号化/復号化するために使用します。キーペアが失われた場合、保存されたデータも失われます。ユーザーはキーを再作成して再度保存する必要があります。ユーザーに秘密鍵を配布しないように指示します。これは単なるdeterrendです。 –

+0

コンピュータを奪い、Windows-Login PWをクラックさせる人は誰でも、ユーザーとして実行しているユーザーとしてpwstoreにアクセスできます。セッションごとに一度彼の力を入れることはおそらくもっと安全でしょう。プレハブ暗号化/復号化方法とソースコードに保存するキーを使用して、独自の暗号dllを実装することもできます。 constとしてではなく、代わりに置き換えて配布されるかもしれません。また、deterrend - もし誰かが洗練されたキーのストレージをリバースエンジニアリングする方法とyoureがやり直して使用します。 –

答えて

関連する問題