Mam ciekawy problem z funkcją hashującą w php.
private function hash($username, $salt, $password) { return hash('sha512', $salt.$username.$password); } function checkValidUsernamePassword($username, $password) { $this->startDatabase(); $sql = "select nazwa, salt, hash from users where nazwa ='$username' limit 1"; { $hash = $this->hash($username, $record['salt'], $password); if($hash == $record['hash']) return true; else return false; } else return false; }
i output
678e3130227fedc39757785a044202fc6c6c072f46c98c37b4c628da7b98c092674a534ff1c49909
c6800265705ee098b9e38f30198dba6e0ad8b0113d8d0ba0 734a8cb77a6f469e933857637600e29749d4be75112711f89d78b3bf462f7b664b7b1bef511370c8
79c84145bb2795d6da4810de5de852ccdc6456753de127ad 128 128
jak można się szybko domyślić hash się nie pokrywa, a co za tym idzie nie mogę przeprowadzić autoryzacji użytkownika.
Pierwszy raz spotkałem się z czymś takim. Jak ktoś może mi podsunąć pomysł jaki jest powód różnego hashowania tych samych stringów (lub może gdzieś po drodze stringi są zmieniane, a ja nie wiem o tym :?), to będę bardzo szczęśliwy.