質問

を使用してい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']);

と比較することが出力をそのままに、データベース(手動).これによりい検討が可能ポイントの失敗:

  1. 手からパスワード形式
  2. ハッシュのパスワード
  3. パスワードの保存
  4. を比較します。

他のヒント

まず、sha256はハッシュアルゴリズムは一種の暗号化を行います。暗号化が必要だと方法を復号する情報には戻り値の衝突以外).

を見てからコードのようで、この場合にはそれを提供し、正しいパラメータとします。

  • 使い方はリテラル文字列をコードし、内容を確認するための有効利用するのではなく、 $_POST[] 変数

  • 設定が正しいかどうかを比較データベースからのクエリのコードをハッシュ、指定されたユーザーとの比較のハッシュにより算)

最も重要なのが前進するような感じがするなどの公共のファッションを忘れないようにしてくださいサニタイズをご用の入力端子が付いています。許可しない任意のSQLを挿入します。の考えにここで使うパラメータ化されたクエリ.

まず最初に、SHAするの機能の比較を行い、を選ぶことですあなたのプログラミング言語(PHP)をサポートする最も安全なアルゴリズムます。

そして、あなたはその hash() の機能を実装するために公式ドキュメントをかむことができます引数として選択したハッシュアルゴリズムや、生のパスワードを受け取ります。

sha256 => 64 bits sha384 => 96 bits sha512 => 128 bits

以上のハッシュアルゴリズムはセキュアなハッシュおよびサーバ側から元の値を回復する時間の点で高コスト。

$hashedPassword = hash('sha256', $password);

の方法より良い解決策はただアンソニー・フェラーラから優秀互換スクリプトを使用することです

https://github.com/ircmaxell/password_compatする

パスワードを確認するとき(それがtimming攻撃のためのチェック処理に影響を与えないようにpreferibly非同期、)

、そしてまた、いつもの道を追加してください必要に応じてハッシュを更新します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top