PHP güvenlik SHA2: & $ tuz = null?

0 Cevap php

Ben şimdi araştırma ve çevrimiçi çevresinde yardım için soran sonra bir SHA2 giriş formu oluşturma, aşağıda bu linkten örnek kod (Ben doğru!? Duyuyorum umarım) oldukça yararlı ve pratik bulmak, tek şey ben anlamıyorum Bu programcı fonksiyonu yazdı ve işlevi tuz değer alma yoludur.

http://hungred.com/useful-information/php-better-hashing-password/

define('SALT_LENGTH', 15);

function HashMe($phrase, &$salt = null)
{
    $pepper = '!@#$%^&*()_+=-{}][;";/?<>.,';

    if ($salt == '')
    {
        $salt = substr(hash('sha512',uniqid(rand(), true).$pepper.microtime()), 0, SALT_LENGTH);
    }
    else
    {
        $salt = substr($salt, 0, SALT_LENGTH);
    }

    return hash('sha512',$salt . $pepper .  $phrase);
}

Ben bu işlevini değiştirmek eğer fark nedir?

function HashMe($phrase, $salt)  {..}

Tabii bu işlevi bir '&' olması için ne başarısız olur $ tuz önce? Bu & $ tuz = boş gibi 'null' olması gerekir? ne koymak '& $ tuz' olur?

ve sonra, tuz değerini almak için, sadece, bunu düz olsun ve bunu aşağıdaki gibi sql sorgusu koyabilirsiniz

$username = cleanMe($_POST('username'));
$password = cleanMe($_POST('password'));
$salt = '';
$hashed_password = HashMe($password, $salt);
$sqlquery = 'INSERT INTO  `usertable` ("username", "password", "salt") VALUES  ("'.$username.'", "'.$hashed_password .'", "'.$salt.'") WHERE 1';
..

nasıl sql sorgusu hazırlamadan önce bu aşağıdaki gibi işlevi tuz değerini alabilirsiniz,

$salt = "'".salt."'";
$username = "'".$username."'";
$hashed_password = "'".$hashed_password."'";

Daha sonra,

$sqlquery = 'INSERT INTO  `usertable` ("username", "password", "salt") VALUES  ($username, $hashed_password, $salt) WHERE 1';

/ Bu istiyorum gibi ben Yüklü nedeni - "" 'null' benim sql sorgusunda I = $ Isim gibi bazen boş bir değere sahip olduğunu '; firstname null / boşsa ve ben gibi boş boş alan 'kene' için satır istiyorum.

yanı sıra, my sql sorgusunda "'" olan şeyler yanlış gittiğinde hata ayıklamak bana şaşkın ve zor yapma ...

Üzgünüm, ben bu thread sürü soru var!

teşekkürler.

0 Cevap