質問
を使用していsha256暗号化、パスワードになります。いのsha256暗号化されたワイナリを使用しています。これだけでログインを同定する。
Insertコード:
<?php
error_reporting(E_ALL ^ E_NOTICE);
$username = $_POST['uusername'];
$passcode = $_POST['ppasscode'];
$userflag = $_POST['uuserflag'];
//$passcodeen = hash('sha256',$passcode);
$passcodeen = hash('sha256', (get_magic_quotes_gpc() ? stripslashes($ppasscode) : $ppasscode));
$conn = mysql_connect("localhost","charles","charles") or die("connection failed with DB:".mysql_error());
mysql_select_db("sessiondb");
$query = "INSERT INTO users(username,passcode,userflag) values('$username','$passcodeen','$userflag')";
選択コード
<?php
error_reporting(E_ALL ^ E_NOTICE);
@mysql_connect("localhost","charles","charles") or die("Connection failed".mysql_error());
@mysql_select_db("sessiondb") or die("Database doesn't exist".mysql_error());
//get user input
$username = $_POST['username'];
$ppasscode = $_POST['ppasscode'];
//$passcodeen = hash('sha256', $ppasscode);
$passcodeen = hash('sha256', (get_magic_quotes_gpc() ? stripslashes($ppasscode) : $ppasscode));
//get session value from mysql
$query = @mysql_query("select username, userflag from users where username ='$username' and passcode = '$passcodeen'") or die("Query execution failed".mysql_error());
がありますか。私は非常に混乱するからです。感謝。
解決
これって誰?(Ps ppasscode、?)
$_POST['ppasscode'];
私はカットし、モッツァレラチーズとい:
print_r($_POST);
っていることを確認してくださいデータが正確であり、そのエコー行うようになっているでしょう:
echo hash('sha256', $_POST['ppasscode']);
と比較することが出力をそのままに、データベース(手動).これによりい検討が可能ポイントの失敗:
- 手からパスワード形式
- ハッシュのパスワード
- パスワードの保存
- を比較します。
他のヒント
まず、sha256はハッシュアルゴリズムは一種の暗号化を行います。暗号化が必要だと方法を復号する情報には戻り値の衝突以外).
を見てからコードのようで、この場合にはそれを提供し、正しいパラメータとします。
使い方はリテラル文字列をコードし、内容を確認するための有効利用するのではなく、
$_POST[]
変数設定が正しいかどうかを比較データベースからのクエリのコードをハッシュ、指定されたユーザーとの比較のハッシュにより算)
最も重要なのが前進するような感じがするなどの公共のファッションを忘れないようにしてくださいサニタイズをご用の入力端子が付いています。許可しない任意のSQLを挿入します。の考えにここで使うパラメータ化されたクエリ.
あなたは http://en.wikipedia.org/wiki/Bcryptパスワードを確保するための
まず最初に、SHAするの機能の比較を行い、を選ぶことですあなたのプログラミング言語(PHP)をサポートする最も安全なアルゴリズムます。
そして、あなたはその hash()
の機能を実装するために公式ドキュメントをかむことができます引数として選択したハッシュアルゴリズムや、生のパスワードを受け取ります。
sha256 => 64 bits
sha384 => 96 bits
sha512 => 128 bits
以上のハッシュアルゴリズムはセキュアなハッシュおよびサーバ側から元の値を回復する時間の点で高コスト。
$hashedPassword = hash('sha256', $password);
の方法より良い解決策はただアンソニー・フェラーラから優秀互換スクリプトを使用することです
https://github.com/ircmaxell/password_compatする
パスワードを確認するとき(それがtimming攻撃のためのチェック処理に影響を与えないようにpreferibly非同期、)、そしてまた、いつもの道を追加してください必要に応じてハッシュを更新します。