2012-01-18 12 views
0

可能性の重複:私は、ログインボックスのできる店のユーザー名/パスワードのペアになりたい
Encrypting passwords in WinForms app.config, .NETproperties.settingsファイルにパスワードを安全に保存する最も良い方法は何ですか?

。アプリケーションがロードされるたびに、保存された資格情報がProperties.Settingsファイルからロードされ、ログインボックスにこれらの値が入力されます。

パスワードがハッキングされる可能性は常にありますが、何もプロパティー設定ファイルにクリアテキストを保存するよりも優れているはずです。

私はSecureStringの使用を検討してきましたが、パスワードがメモリ内のクリアテキストに格納されないようにするだけです。

これを処理するにはどのようなアイデアが最適ですか?

+0

がありますか? –

+0

ログオンしているアプリケーションを制御しますか? –

+1

基本的には、繰り返します。http://stackoverflow.com/questions/1392876/encrypting-passwords-in-winforms-app-config-net – Lloyd

答えて

0

プレーンテキストを保存する代わりに、パスワードのハッシュだけを保存できます。次に、入力されたユーザーデータベースとパスワードに格納されたパスワードを比較するときに、開いているテキストの代わりにハッシュを比較しています。 System.Security.Cryptography ...

0

ログインボックスにパスワードをあらかじめ入力しておきたい場合は、元の文字列であるかどうかにかかわらず、どこかにのクリアテキストで保存する必要があります。データベース、設定ファイルまたは設定ファイル、またはコンパイル済みリソース内の文字列として表示されます。

マスクされたパスワードフィールドからパスワードを抽出することは、テキストボックスにメッセージを送信するのと同じくらい簡単です。

パスワードを暗号化するか、MD5ハッシュを生成してを保存することを検討してください。ユーザーがログインしたら、元のパスワードで使用したのと同じプロセスを使用し、結果を比較して正しいパスワードが入力されているかどうかを確認しますが、ログインボックスを事前入力することはできません。

一方、ダイアログに入力する際に​​パスワードを要求する点は何ですか?あなたはフィールドを全く使わずに「ログインしてログインする」というフォームを表示してもよいでしょう。

+0

「Remember Me」チェックボックスをクリック/クリック解除するオプションがあるので、次回はアプリの起動時にパスワードを覚えておく必要があります。認証が成功すると、設定ファイルに保存されているパスワードが使用され、ログインは表示されません。私はまだパスワードをどこかに保存する必要があります。私はそれをもう少し安全にするのがいいと思っただけです。 – jaffa

1

なぜハッシュが言及されているのか分かりません。それらが不可逆的になるように設計されている場合、フィールドを事前に入力するためにどのように使用できますか?

私はしばらく前にこれに似た何かをしたとき、私は次のようでした:

AES_encrypt (username + saltString1 + password + saltString2) 

保存することとAESキーを格納した結果。データとキー

  • キーを使用して、データを復号化

    • リコールは、分割の程度saltString1
    • 最初の値である文字列を分割:フィールドに移入し

      ユーザ名

    • 第2の値はpassword + saltString2
      • です。グラムsaltString2を使用して、あなたはあなたのパスワード
      • あなただけのWindowsが提供する組み込みのパスワード保存メカニズムを使用することはできませんなぜ
  • +0

    はい、これはハッシュとは関係がありません。これは、パスワードの保存をapp.configファイルのクリアテキストで防止します。 – jaffa

    +1

    これでパスワードは暗号化され、AESキーは暗号化されません。私はそれを暗号化して "それはまるでカメだ"と言いますが、どこかで終わらなければならないということは、*コードを持つ人なら誰でもコードを簡単に*得ることができるということです。 – harold

    関連する問題