Autentykacja w zendzie i solenie hasła

0

Poniższa akcja ma przeprowadzić "proces logowania" zakończony komunikatem z flashMessenger'a.

public function loginAction()
    {
        $db = $this->_getParam('db');
 
        $loginForm = new Default_Form_Auth_Login();
 
        if ($loginForm->isValid($_POST)) {
 
            $adapter = new Zend_Auth_Adapter_DbTable(
                $db,
                'users',
                'username',
                'password',
                'MD5(CONCAT(?, password_salt))'
                );
 
            $adapter->setIdentity($loginForm->getValue('username'));
            $adapter->setCredential($loginForm->getValue('password'));
 
            $auth   = Zend_Auth::getInstance();
            $result = $auth->authenticate($adapter);
 
            if ($result->isValid()) {
                $this->_helper->FlashMessenger('Successful Login');
                $this->_redirect('/');
                return;
            }
 
        }
 
        $this->view->loginForm = $loginForm;
 
    }

Czy może mi ktoś wytłumaczyć co oznacza zapis 'MD5(CONCAT(?, password_salt))'? W manualu http://framework.zend.com/manual/1.12/en/learning.multiuser.authentication.html nie ma nawet żadnych przykładowych danych jakie należy wstawić do db, aby podany przez nich przykład działał.

0

Zapewne wybrany sposób szyfrowania hasła - połączenie hasła z solą i przemielenie przez funkcję skrótu.

0

Mimo wszystko dalej tego nie czaję. Baza wygląda tak:

CREATE TABLE users (
        id INTEGER  NOT NULL PRIMARY KEY,
        username VARCHAR(50) UNIQUE NOT NULL,
        password VARCHAR(32) NULL,
        password_salt VARCHAR(32) NULL,
        real_name VARCHAR(150) NULL
    )

Czyli załóżmy, że password chcemy przechowywać w postaci MD5 (PYTANIE - CZY ZMIENIAMY LINIĘ

$adapter = new Zend_Auth_Adapter_DbTable($db,'users','username','password','MD5(CONCAT(?, password_salt))' ); 

na

$adapter = new Zend_Auth_Adapter_DbTable($db,'users','username','MD5(password)','MD5(CONCAT(?, password_salt))' ); 

? )
a sól to md5(password)+microtime() (PYTANIE - CO WPISUJEMY W OSTATNIM ARGUMENCIE?)

0

Nie znam frameworka, ale jak masz w bazie hasło zapisane w md5 bez żadnej soli to adapter będzie pewnie wyglądał tak:

$adapter = new Zend_Auth_Adapter_DbTable(
                $db,
                'users',
                'username',
                'password',
                'MD5(?)'
                );
0

Dziękuję Panie Macieju :) <3

1 użytkowników online, w tym zalogowanych: 0, gości: 1