Используйте bcrypt.Эта дискуссия возникла здесь в комментариях к моему ответу.Вы можете использовать библиотеку, такую как phppass , чтобы действительно упростить шифрование пароля.
По вопросу соли.Используй это!В противном случае кто-то может просто зайти на этот сайт и загрузить радужные таблицы, которые будут охватывать большинство паролей, которые выбирают средние пользователи.Особенно с учетом всех утечек в системе безопасности за последние несколько месяцев, сейчас не время говорить о том, что вы не будете использовать что-то настолько простое для реализации, как случайная соль.
ОБНОВЛЕНИЕ
Чтобы использовать PHPPass с CI, загрузите и извлеките файлы с веб-сайта phppass, указанного выше.Поместите файл PasswordHash.php в каталог приложений / библиотек CI.
В своем коде вы затем загружаете библиотеку с помощью: $this->load->library('PasswordHash',array(8, FALSE));
Хэширование паролей тогда просто, как $this->PasswordHash->HashPassword($password);
Чтобы позже проверить правильность пароля, достаточно просто:
$password = $_POST['password'];
$actualPassword = /*Get the hashed password from your db*/;
$check = $this->PasswordHash->CheckPassword($password, $actualPassword);
Я взял это демо из http://dev.myunv.com/articles/secure-passwords-with-phpass/, которое дает вам гораздо больше информации,Я немного изменил это руководство, чтобы использовать загрузчик CI, поэтому вам не нужны операторы include
или new
.