Php5.3.0 içinde sha256 nasıl kullanılır

3 Cevap php

Ben şifresini şifrelemek için sha256 kullanıyorum. Ben MySQL sha256 şifreli şifresini kaydedebilirsiniz. Ama aynı tümce ile giriş yapamıyorum.

Kodu eklemek:

<?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')";

Kod seçin:

<?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());

Yanlış bir şey var mı? Kafam çok karışık. Teşekkürler.

3 Cevap

Bu bir yazım hatası olabilir mi? (Iki Ps ppasscode olarak, amaçlanan?)

$_POST['ppasscode'];

Ben emin ve yapardı:

print_r($_POST);

ve emin veri yok doğru yapmak ve daha sonra ne gibi görünmelidir echo:

echo hash('sha256', $_POST['ppasscode']);

Eğer veritabanı (elle) ne var bu çıktıyı karşılaştırın. Bunu yaparak başarısızlık olası puan keşfederken:

  1. Form şifre alma
  2. parolayı karma
  3. saklanan şifre
  4. ikisinin karşılaştırması.

Her şeyden önce, bir müzakere algoritması sha256 değil, şifreleme türüdür. Bir şifreleme özgün değerine (kenara çarpışmalar) geri bilgi şifresini çözmek için bir yol olan gerektirir.

Kodu baktığımızda, bu doğru parametre sağlayarak eğer çalışması gerekir gibi görünüyor.

  • Ilk kod değişmez bir dize kullanarak deneyin ve bunun yerine $_POST[] değişkeni kullanarak geçerliliğini teyit

  • (Belirli bir kullanıcı için karma almak ve sadece hesaplanmıştır karma karşılaştırmak) kodu veritabanı sorgu karşılaştırma hareketli deneyin

Ama en önemlisi kamu moda her türlü bu dağıtmadan önce, girişleri sterilize unutmayın lütfen. Keyfi SQL sorguları eklemek için izin vermeyin. Burada iyi fikir parametreli sorgular kullanmak olacaktır.

Sen şifreleri sabitlemek için http://en.wikipedia.org/wiki/Bcrypt gibi Adaptif karma kullanmanız gerekir