Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF]Walidator dla zahashowanego hasła
amii
post
Post #1





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Robię standardowy formularz zmiany hasła, potrzebuje sprawdzić czy podane stare hasło jest zgodne z tym zapisanym w bazie.
Zend_Validate_Db_RecordExists byłby rozwiązaniem gdyby można mu było dostarczyć zahashowane hasło.

Jak sprawdzić w walidatorze, czy hasło jest zapisane w bazie jeśli w bazie jest w formie: SHA1('constant string from app'.$pass.'some random strong') a user wpisuje w formularzu jako $pass

Ten post edytował amii 22.08.2012, 12:40:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
amii
post
Post #2





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Problem prawie rozwiązany. Zrobiłem tak:
1. Filtr w My_Filters_Hash
  1. class My_Filters_Hash implements Zend_Filter_Interface
  2. {
  3. public function filter($value)
  4. {
  5. $m = new Application_Model_DbTable_Users();
  6. $sql = 'SELECT salt FROM users WHERE id = ?';
  7. $id = Zend_Auth::getInstance()->getIdentity()->id;
  8. $salt = $m->getAdapter()->fetchOne($sql, $id);
  9. $valueFiltered = sha1(Zend_Registry::get('salt') . $value . $salt);
  10.  
  11. return $valueFiltered;
  12. }
  13. }


Filtr podłączony pod pole tylko problem jest taki, że do pola formularza zwraca zahaszowaną wartość zakładam, że to jest hash dla pustej wartości. Kiedy zwrócę z filtra pustą wartość to wtedy nic nie jest widoczne.

EDIT: jak formularz się żle zwliduje trzeba bylo dać przed przekazaniem do widoku, teraz śmiga:
  1. $form->setElementFilters(array());
  2. $this->view->form = $form;


Ten post edytował amii 22.08.2012, 15:40:33
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 31.12.2025 - 15:08