Класс шифрования CodeIgniter - Как мне? - PullRequest
0 голосов
/ 19 апреля 2010

Я создал страницу регистрации с помощью CI, которая работает нормально. Однако я закодировал пароль с помощью sha1 (см. Фрагмент кода ниже), и теперь, когда я планирую создать страницу входа в систему, мне нужно проверить, совпадает ли пароль, введенный пользователем на странице входа в систему, с паролем, закодированным с помощью хранимого sha1 в базе данных. Однако я только что понял, что sha1 не декодируется.

Так как же использовать класс шифрования CI для шифрования, а затем дешифрования этого пароля для входа в систему? Любая помощь будет оценена. Заранее спасибо.

функция register_user ($ username, $ password, $ name, $ email, $ активации_code) {

 $sha1_password = sha1($password);  
 $query_str = "INSERT INTO table_name (username, password, name, email, activation_code) >VALUES (?,?,?,?,?)";    


$this->db-query($query_str, array($username, $sha1_password, $name, $email, $activation_code));

}

Ответы [ 2 ]

3 голосов
/ 19 апреля 2010

Нет необходимости расшифровывать пароль, сравнивая только на равенство. Это все, что необходимо для идентификации пользователя.

0 голосов
/ 26 октября 2012

Для шифрования / дешифрования CodeIgniter предоставляет класс шифрования: http://codeigniter.com/user_guide/libraries/encryption.html

Если вам необходимо получить пароль, вам следует зашифровать свой пароль (обратимый процесс) вместо того, чтобы хэшировать его (односторонне): http://codeigniter.com/forums/viewthread/203341/. В любом случае, вы должны использовать соответствующий метод хеширования для обработки пароля. Например, Bcrypt http://www.phptherightway.com/#password_hashing_with_bcrypt

Другое хорошее чтение: http://codahale.com/how-to-safely-store-a-password/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...