1

私はおよそ4,000人のメンバーからなるデータベースを持っています。MD5を使用してパスワードを再暗号化し、新しいシステムに配置できるように、すべてのパスワードを復号化する必要があります。私は暗号化前と暗号化後のパスワード文字列を持つ1つのアカウントを持っているので、これでメソッドとキー範囲を理解できるはずだと思います。元のソースコードにアクセスできないか、ここにいません。

既存のパスワードは劇的に異なります。

User1-qwDyP1db9iOPI

User2-$ 1 $ .WXtDyLg $ yxBPAWxzd.srEWJZfqZAY /

User3-do8sLMoVVqxKQ

User4-TKmnAlPe

どうすればそのような問題に取り組むことができますか?

4

5 に答える 5

3

通常、パスワードは保存されていないため、パスワードを復号化することはできません。表示されているのはパスワードのハッシュです。特定のハッシュに一致するパスワードを見つける効率的な方法はありません。

MD5ハッシュを使用するように構成を変更したら、全員にパスワードの変更を強制するか、全員が新しい一時パスワードを生成してすべてのハッシュを一度に置き換えることができますが、いずれにしても、全員が再度パスワードを変更する必要があります。

それらはおそらくLinuxから来たように見えます($ 1 $で始まるものはすでにMD5ハッシュであり、他は古いcrypt()DESバリアントスタイルのように見えます)。

アプリケーションのパスワードを処理する場合は必ずしもそうとは限りません(たとえば、一部のデータベースはかなり弱いクレデンシャルストレージを使用します)が、Unix/Linuxフレーバーは実際のパスワードを非常に長い間保存していません。

于 2012-06-11T19:54:48.567 に答える
1

考えましょう。私があなたのコンピューター/データベースにハッキングできるとしましょう (不可能な作業ではありません)。だから私はあなたが持っているものを持っています - すべてのユーザーのパスワードのリストですが、暗号化されています. しかし、おそらく私はあなたのシステムに自分で登録できますし、自分のパスワードも知っています。ユーザー名または最新のエントリのいずれかで、暗号化された形式を DB で見つけることができるので、クリア + 暗号化のペアができました。あなたが求めていることを実行できれば、すべてのパスワードとすべてのアカウントへのフル アクセスを取得できます。つまり、パスワードや一般的なデータを暗号化しても、実質的に追加のセキュリティ効果はなく、データへの不正アクセスを防ぐことだけを気にする必要があります。しかし、これは真実ではないので、できません:)

ところで、MD5 は暗号化ではなくハッシュ、またはより正確にはダイジェストです。

于 2012-06-11T20:24:41.223 に答える
1

現在のシステムから切り替える場合は、プレーンな MD5 に切り替えないでください。多くの一般的なパスワードをクラックするための「レインボー テーブル」があります。代わりに、salted/double MD5 または SHA を使用してください

于 2012-06-12T19:03:25.287 に答える
1

ほとんどの場合、twalbergが正しいように見えますが、さらに一歩進んで、実用的なアドバイスを提供したいと思います。

1)データベースから元のパスワードを取得する方法については、 http://www.openwall.com/john/ (John the Ripper) を参照してください。生成されたパスワードは元のパスワードではない可能性があることに注意してください (可能性は高いですが、確実ではありません)。

このツールを使用してすべてのパスワードを取得したら、次のことを考えてみてください。これは誰にでもできることです。ユーザーはこれらのパスワードを別の場所で使用する可能性があります。誰かがあなたのサイトに侵入した場合、彼らはあなたを信頼している人々を暴露する可能性があります. 誰かがこの情報を使用して他のアカウントに侵入した場合、ユーザーはあなたを非難する可能性があります。平文のパスワードを持ち歩くのは危険です

この機会に、ユーザーにパスワードを変更してもらうことをお勧めします。アカウントを使用しなくなったユーザーは、アクセスを回復するためにおそらく小さな確認手順を実行する必要があるため、今すぐアカウントを無効にすることができます.

2) 新しいパスワード データベースを生成するときは、セキュリティを確保するために、少なくともユーザーごとのソルト (生成されたハッシュ出力に標準的な方法でランダム値を追加) と共に安全なハッシュ (SHA1 または SHA2 など) を使用することをお勧めします。偶発的な露出からデータベース。

この答えは効率的ではありませんが、実際のパスワード データベースに、あなたが示す割合とほぼ同じ比率が含まれている場合、現在のデータベースのほとんどの場合、おそらく実用的です。

于 2012-06-12T03:53:14.923 に答える
0

ご意見をお寄せいただきありがとうございます。全員にパスワードを変更してもらいます。誰かのパスワードを保持するつもりはありません。目標は、新しいシステムへの移行後に 4000 人のユーザー全員がパスワードを変更する必要がないようにすることでしたが、やむを得ないようです。davka が指摘したように、私はこのデータベースにアカウントを持っており、自分のパスワードを知っており、暗号化されたバージョンを見ることができるので、パスワードを解読して新しいデータベースに貸し出すスクリプトを開発するのに十分だと考えました. 再度、感謝します。

于 2012-06-12T10:41:37.653 に答える