Parolanızı gölge

3 Cevap php

Php cli ile gölge şifreyi karşılaştırmak çalışıyorum ama çalışmıyor değilim! i gölge gibi parola oluşturabilirsiniz yüzden bu fonksiyonu kullanmak

function shadow ($input){
    for ($n = 0; $n < 9; $n++){
        $s .= chr(rand(64,126));
    }
    $seed =  "$1$".$s."$";
    $return = crypt($input,$seed);
    return $return;
}

i gölgesinde sonucu değiştirmek zaman şifre ile çalışmak oluyor ama ben bunu karşılaştırmak ne kadar farklı karakter var bu.

teşekkürler

3 Cevap

Sizin fonksiyonu bir random tuzu (değişken seed) php kullanarak rand fonksiyonu oluşturur. Böylece, tuz gölge dosyada mevcut şifrenizle tarafından kullanılan tuzdan daha farklı olacaktır.

Eğer compare sağlamalarının istiyorsanız (yani crypt olarak değeri ile dediğimiz çıktı karşılaştırmak shadow), hem karmaları {[ile oluşturulması gerekiyor (3)]} tuzudur. Böylece, yerine rastgele kendi yaratma gölge dosyasında mevcut şifrenizle (= $1$...$ kısım) gelen tuz kullanmanız gerekir.

Başka bir deyişle, işlev bırakın ve sadece $1$...$ /etc/shadow içinde karma ilk parçası olmak yerine, crypt($input, '$1$...$') kullanın.

Parola dosyasında saklanır tuz kullanın:

 $crypted=crypt($_POST['password'], $stored_password);
 if ($crypted==$stored_password) ( // they match

Eğer explicity saklanan parola tuz ayıklamak zorunda, ne de algoritma / tuz boyutu hakkında endişelenmeyin unutmayın - crypt bunu sizin için.

C.

Ayrıca PAM pecl extension içine bakarak yerine / etc / shadow ile uğraşmaktan değer olabilir.

This extension provides PAM (Pluggable Authentication Modules) integration. PAM is a system of libraries that handle the authentication tasks of applications and services. The library provides a stable API for applications to defer to for authentication tasks.