2012-05-10 21 views
0

MySQLデータベースにオンラインパスワードマネージャのパスワードを保存するとどうなりますか?大きなものではなく、ほんの数人のユーザー。元に戻すことができないので、私は本当にそれらをハッシュできません。 KeePassのようなプログラムはどのようにこれを達成しますか?Password Managerのパスワードはどのように保存しますか?

ありがとうございます!

+3

通常、ユーザーのパスワードは、送信前にマスターパスワードを使用して暗号化されています。暗号化されたパスワードを保存し、要求に応じてユーザーに返します。マスターパスワードを使用して、自分のマシンで復号化します。マスターパスワードや暗号化されていないパスワードは扱いませんので、格納している基本パスワードには完全にアクセスできません。 – eggyal

+0

@eggyal PHPでこれをどうすればできますか?私はマスターパスワードが必要だと理解していますが、このマスターパスワードでハッシュ文字列をどのように逆にしますか? –

+0

私が記述したパターンに従えば、PHP(サーバー側)で暗号化を実行しません。クライアント側で行う必要があります。アプリケーションがWebベースの場合は、Javascriptで実行できます(ただし、XSSとブラウザのセキュリティ上の脆弱性に注意する必要があります)。 - [Stanford Javascript Crypto Library](http://crypto.stanford.edu/sjcl/)始めるには良い場所です。 – eggyal

答えて

3

(答えからのアップグレード)

通常のユーザーのパスワードは、あなた、パスワードマネージャに送信する前に、マスターパスワードを使用して暗号化されています。そのような暗号化されたパスワードを保存し、その要求に応じてユーザーに返します。マスターパスワードを使用して自分のマシンで復号化します。マスターパスワードや暗号化されていないパスワードは扱いませんので、格納している基本パスワードには完全にアクセスできません。

アプリケーションがWebベースの場合は、JavaScriptの暗号化操作を実行できますが(XSSとブラウザのセキュリティ上の脆弱性には非常に注意する必要があります)、Stanford Javascript Crypto Libraryを開始するのが適切です。

+0

このすばらしい&すばらしい答えをありがとう! –

-1

パスワードをハッシュすることは、実際には不可逆です。しかし、あなたはその理由のためにパスワードをハッシュします:

  1. パスワードをハッシュします。データベースに挿入します。
  2. ユーザーはログインを試み、パスワードを提供します。ユーザー提供のパスワードがハッシュされています。それがデータベース内のものと一致する場合は、ユーザーを認証します。
  3. プログラムは、一般的に以下を提供

setPassword(user, password); //puts the (hashed) password into a database table associated with user 
authenticate(user, password); //for given user, checks to see if password is valid 

この質問は非常に広く、おそらくdownvotedれます、と述べました。あなたは特定の質問をしたり、これまでに試したことを言ったりしていません。

+0

これはパスワードマネージャアプリケーションにはあまり適用されません。 – eggyal

+0

私は本当にパスワードマネージャアプリケーションが必要なので、どのパスワードが保存されているかを知る必要があります。私はそれが可逆的である必要があります。 –

+0

ああ、あなたがしようとしていたことを誤解しました。そのための暗号スキームははるかに激しく、私はそれらをわかりません。 –

関連する問題