Codeigniter - вход в систему с использованием библиотеки шифрования

0

Я создал регистрационную форму, используя библиотеку шифрования codeigniter, чтобы хранить пароли пользователей следующим образом:

$encrypted_password = $this->encrypt->encode($this->input->post('password')); 

Я заметил, что каждый раз, когда мы шифруем (событие, если мы шифруем один и тот же пароль), функция шифрования создает другой вывод.

Мой вопрос заключается в следующем: что является лучшим способом сравнить два зашифрованных пароля, когда пользователь пытается войти в систему, поскольку мы знаем, что каждый раз, когда мы шифруем, мы получаем другую зашифрованную строку?

Теги:
codeigniter

1 ответ

0
Лучший ответ

Смотрите здесь: https://ellislab.com/codeigniter/user-guide/libraries/encryption.html

$encrypted_string = 'APANtByIGI1BpVXZTJgcsAG8GZl8pdwwa84';

$plaintext_string = $this->encrypt->decode($encrypted_string);

Класс encription использует симметричное кодирование. Поэтому для сравнения вам нужно расшифровать пароль и сравнить его. Если вы хотите использовать односторонний метод, используйте хеширование, исправьте меня, если я ошибаюсь, но codeigniter поддерживает только до sha1, поэтому, возможно, посмотрите здесь, что может предложить родной php: http://php.net/manual/en/function.hash.php

Вы также можете комбинировать оба метода, хешировать и шифровать.

  • 0
    Функция do_hash в CodeIgniter по умолчанию использует SHA1, но можно использовать и MD5 (если он указан)
  • 1
    Это не звучит лучше для паролей :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню