16

誰かが私に見せたり、md5形式でデータベースにパスワードを挿入する方法を説明してもらえますか?あなたが私を正しい方向に向けることができたとしても、私はmysqlのおかげで初めてなので、私は感謝するでしょう。

$query="INSERT INTO ptb_users (id,
user_id,
first_name,
last_name,
email )
VALUES('NULL',
'NULL',
'".$firstname."',
'".$lastname."',
'".$email."',
'".$password."'
)";
mysql_query($query) or dieerr();
$result = mysql_query("UPDATE ptb_users SET ptb_users.user_id=ptb_users.id");
4

5 に答える 5

14

使用MD5

$query="INSERT INTO ptb_users (id,
user_id,
first_name,
last_name,
email )
VALUES('NULL',
'NULL',
'".$firstname."',
'".$lastname."',
'".$email."',
MD5('".$password."')
)";

しかしMD5、安全ではありません。を使用しSHA2ます。

于 2013-03-15T14:18:38.073 に答える
4

MD5安全ではないので使用しないでください。SHAを使用するかbcrypt、一緒に使用することをお勧めしsaltます:

SHA256('".$password."')

http://en.wikipedia.org/wiki/Salt_(cryptography)

于 2013-03-15T14:20:37.870 に答える
1

Darren Daviesは、ソルトを使用する必要があると言っている点で部分的に正しいです。MD5が安全ではないという彼の主張にはいくつかの問題があります。

Md5ハッシュを使用してパスワードを挿入する必要があるとおっしゃいましたが、その理由はわかりません。それは、パスワードを検証するときに使用される形式だからですか?パスワードを検証するコードを制御できますか?

ソルトを使用することについてのことは、2人のユーザーが同じパスワードを持っているという問題を回避することです-彼らは同じハッシュを持っています-望ましい結果ではありません。パスワードごとに異なるソルトを使用することで、これは発生しません(非常に大量のデータでは、2つの異なるパスワードから衝突が発生するリスクがありますが、今のところ無視します)。

したがって、ソルトのランダムな値を生成してそれをレコードに保存することも、ユーザー名など、すでに保持しているデータの一部を使用することもできます。

$query="INSERT INTO ptb_users (id,
        user_id,
        first_name,
        last_name,
        email )
        VALUES('NULL',
        'NULL',
        '".$firstname."',
        '".$lastname."',
        '".$email."',
        MD5('"$user_id.$password."')
        )";

(コードの前半でこれらすべての文字列を適切にエスケープしたと想定しています)

于 2013-03-15T15:29:37.580 に答える
0

あなたがmd5encryptioonを使いたいなら、あなたはあなたのphpスクリプトでそれをすることができます

$pass = $_GET['pass'];

$newPass = md5($pass)

次に、その方法でデータベースに挿入しますが、MD5は一方向の暗号化方式であり、問​​題なく復号化することはほぼ不可能です。

于 2013-03-15T14:42:03.010 に答える
0

mysqlではMD5()を使用でき、phpではmd5()を使用できます。ソルトを使用するには、md5、feを実行する前にパスワードに追加します。

$salt ='my_string';
$hash = md5($salt . $password);

パスワードごとに異なるソルトを使用することをお勧めします。このためには、ソルトをdb(およびハッシュ)に保存する必要があります。認証ユーザーは自分のログインとパスを送信します。彼のハッシュとソルトはdbにあり、次のことがわかります。

if ($hash == md5($salt . $_POST['password'])) {}
于 2013-03-15T14:59:05.567 に答える