2012-02-04 13 views
0

...私は現在、自分のCMSをコード化していると私は、パスワードの状態でだmd5(sha1(password))できますか?

私が知りたい

その後、私ができるmd5パスワードの後sha1それをもし?

などは:

$password = md5(sha1(mysql_real_escape_string($_POST['passw']))); 
+2

任意のバイト列のsha1のmd5を計算できます。なぜ聞くのですか? –

+0

CMSをクラッシュさせたくないから頼んでいる!だからできますか? –

+4

パスワードをエスケープしないでください。md5、sha1などの英数字ハッシュでハッシュされていると、有害な文字を含むことはできず、ユーザーが期待するパスワードが変更される可能性があります。 –

答えて

6

あなたはmd5任意のデータは、あなたはそれが前にハッシュされた場合でも、希望することができます。

ただし、小さなデータセットで作業しているため、衝突の危険性が増えます。

達成しようとしていることは何ですか?

+0

私は1000の行なしで自分のパスワードに最高のセキュリティを欲しい! –

+0

@FrederickMarcoux弱いMD5アルゴリズムでSHA1パスワードを実行しても、セキュリティが強化されることはありません。 – mrlee

+2

最高のセキュリティは、ハッシュ関数そのものの強さに由来します。しかし、あなたが非常に簡単に行うことができるのは、一般的に使用されている(すなわち一般的に使用されている)強さを向上させることです[http://highedwebtech.com/2008/04/25/season-your-passwords-with-some-salt/]事前計算された)ハッシュ関数値。 – hackartist

1

あなたは明らかにすることができます。私はなぜあなたができないのか分かりません。

セキュリティを強化したい場合は、phpassと考えるべきです。

4

はいできます。 いいえ、意味がありません。

連鎖ハッシュ関数のセキュリティは、常に最も弱いアルゴリズムのセキュリティ以下である。

つまり、sha1($ something)よりも安全ではありません:sha1を破壊すると、shat($ something)およびsha1($ something)というmd5が無料で取得されます。 faked_something)は同じ値を持ち、したがってそれらをmd5することで何も変更されません。

1

あなたはこれを行うことができますが、本当の利点はありません。 md5()でパスワードを実行している場合は、暗号化された塩を追加することにより、さらにセキュリティが強化されます。

What is SALT and how do I use it?にはそれ以上の情報があります。

多くのアドバイスがありましたら、MD5を使用しないでください。 SHA1は比較的強力で、データベースのパスワードフィールドを変更して40文字の文字列を受け入れる必要があります。

1

塩を追加することを忘れないでください。そうすれば、顧客/ユーザーのパスワードに対して虹のテーブルを使用するのがずっと難しくなります。

のような何か:

$ hashedPassword = SHA1(。。。MD5($パスワード)$塩SHA1($塩$パスワード));

ここで、saltは、アプリケーション全体にわたって定数であるか、ユーザーごとに格納されている連絡先ごとの定数であっても、素晴らしい長いランダムな文字列そのものになります。

関連する問題