0

また、管理者が使用できるように、Web ストアの一部の領域を保護する必要があります。問題はユーザーの認証です。ソルト + ハッシュが失敗しています。

これは、パスワードを作成するための私のコードです (PHP5.x を使用):

$salt = rand(0, 999999999999);<br>
$passEncr = sha1($pass1 + $salt);

この変数 $passEncr は、そのソルトとともにデータベースに挿入されます。

ログインページで、次のチェックがあります。

$password = $_POST['password']; // hash+salt in the database

$storedSalt = $row['salt']; // salt from database<br>
if (sha1($password + $storedSalt) == $row['password']) 

今私が経験している問題は、いくつかのハッシュが同じように見えることです。英数字のパスワードでログインしようとすると、そのパスワードの内容に関係なく成功します。完全なログイン チェックはこちら: http://pastebin.com/WjVnQ4aF

誰かが私が間違っていることを説明してもらえますか?

4

1 に答える 1

0

まあ、SQL インジェクション、bcrypt の代わりにパスワードに SHA を使用することは、私が最初に目にするものであり、パスワードを保存するビジネスから抜け出すことができるように OpenId を使用しないことは別のことです。

パスワードが同じであることについては、データベースをチェックします。保存しているものを確認すると、問題がどこにあるかがわかります。

于 2012-07-22T21:46:50.167 に答える