2016-04-04 5 views
1

データを暗号化する特定の方法を探しています。 私はそれを私のパスワードで暗号化し、それを復号化したいと思う。 後で私は自分のパスワードで自分のデータの選択した部分に他の人がアクセスできるようにしたい。複数のパスワードで復号する

新しい「リーダー」を追加してすべてのパスワードを「ミックス」して再度暗号化するたびに、データを復号化する以外の方法はありますか? そして、大きな問題は誰のパスワードも知らずに解読することです。

私は別の問題を考えました。特定の/ログインパスワードが正しいことを確認するにはどうすればよいですか? 実際のパスワードまたは暗号化パスワードを保存しないと、次のような問題が発生する可能性があります。

  • パスワードを取得してください。 「驚くほど悪いパスワードだよ」
  • 暗号化と復号化キーとしてハッシュを使用します。ハッシュ(salt + "驚くほど悪いパスワードです")
  • パスワードの検証としてハッシュされたハッシュを保存します。ハッシュ(ハッシュ(salt +「驚くほど悪いパスワードです」)

あなたはどう思いますか?ランダムバイトなど、安全な鍵でデータに一度、ヘルプみんな

+0

第2の質問について:「実際のパスワード」と「暗号化パスワード」の違いは何ですか? – Thilo

+0

「自分のデータの選択された部分」は何を意味しますか?ファイルごとに、ファイルの一部またはデータベースの一部に – zaph

答えて

1
  1. 暗号化のための

    感謝。

  2. ユーザーのパスワードは(適切に拡張された)ユーザーのパスワードを使用して上記のキーを暗号化し、userIDの下のファイルまたはDBに保存し、認証用の塩/ハッシュされたパスワードを保存します。

  3. ルックアップにアクセスするには、入力したパスワードを塩/ハッシュされたパスワードで確認し、データキーをユーザーのパスワードで復号化します。

  4. データキーを使用してデータを復号化し、ユーザーに返します。

  5. サイドの利点:ユーザーのパスワードは、データが暗号化されている実際のキーを変更することなく変更できます。第二部のために

、ないhash(hash(salt + "Thats an amazingly bad password"))を行い、暗号化キーのためにユーザーが指定したパスワードで、このようなPBKDF2とパスワードの拡張メソッドを使用します。そのようなメソッドは、塩とパスワードを取って、操作を遅くするために何度も繰り返します。約100msのどこかが良い目標のようです。

ハッシュをハッシュしても、操作に些細な時間を追加する以外のことはできません。

+0

これは素晴らしいアイデアです!どうもありがとう! – Timo

関連する問題