2011-08-26 6 views
3
hash('sha512', $_POST['password'] . time()) 

をハッシュため、十分に安全なこれは、他のパスワードを作成し、ハッシング<a href="http://en.wikipedia.org/wiki/Salt_%28cryptography%29" rel="nofollow">salt</a>を加え、私がお勧め...私はこれとその程度の事の多くを聞いたことがあるとの結論に来ることができない

+1

計算されたハッシュの使い方についてすべてを教えていない限り、セキュリティについて話すのは現実的ではありません。 – Jon

+0

私はWampで作業している単純なログイン/サインアッププロジェクトです。ユーザーがログインしたパスワードです。タイムスタンプで塩漬けしています – carlgcoder

答えて

4

time()saltとしています。あなたはそれを行うことができますが、それを保存することを忘れないでください(そうでなければ、saltと連結したパスワードが保存されたハッシュと一致するかどうかチェックすることができます)。 sha512は、ハッシュアルゴリズムに最適です。私はお勧めします

$salt = uniqid('carlgcoder_') . microtime(true); 
$hash = hash('sha512', $salt . $_POST['password']); 
+0

これは静的な塩で、ランダムなものですか?私はこれについて不思議に思った、これは有益だろうか? – carlgcoder

+0

あなたの助けてくれてありがとう、私は私が持っていたものにこだわり、静的な塩を追加します...あなたの例のように、グローバル変数または実際のハッシュ自体の中に静的な塩を保存する方がいいですか? ?? - – carlgcoder

+0

@carlgcoderこの塩は、静的部分と可変部分を含んでいます。 (時間はランダムではありません)。ダイナミックな部分はすべての塩をユニークにします。異なるユーザーの2つの塩が同じ場合、攻撃者は両方のパスワードを1回の実行で見つけることができます。また、 'microtime'と' uniqid'のすべての可能な値に対してテーブルを作成する仮説的な攻撃者があなたのプロジェクト用のテーブルをカスタマイズする必要があることを確かめる(それほど重要ではない)静的コンポーネントも含まれています。 – phihag

5

ですそれから - はい。

+1

塩はtime()です。サイトに参加すると、それは各ユーザーにも個別になります – carlgcoder

+2

パスワードが一致するかどうかをどのように確認しますか?その時間もどこかに保存されていますか? –

+0

はい、データベースに保存されている時間を使用して、アカウントの年齢およびログインしているユーザーの年齢を計算しています。 – carlgcoder

0

塩を使用してください。サンプル:

<?php 
    $passwordWasSavedInDB = md5($_POST['password']."_paranoia_") 
+0

...すべてのために同じ塩を使用しない方が良いとsha512が良いですmd5より元のポスターの方があなたの答えよりも優れています –

+0

彼は*塩を使用しています。あなたが提案している一定の文字列よりも優れています。また、なぜSHA512よりもMD5が好きなのですか? – phihag

+0

決して静的な塩を使用しないでください - ユーザーの他の情報から作成されたものを使用してください。 – ty812

関連する問題

 関連する問題