Я использую этот класс для создания хэшей паролей. Система состоит из веб-страницы, построенной на php, устройствах iphone, а также устройствах Android. Мне нужны эти смартфоны, чтобы иметь возможность войти в систему и получить доступ к информации, хранящейся на моей стороне сервера БД. Какое лучшее решение, это перенести этот метод на цель c и отправить хэш на сервер? Или лучше посылать пароль по SSL и сравнивать хэш серверную часть?
class PassHash {
// blowfish
private static $algo = '$2a';
// cost parameter
private static $cost = '$10';
// mainly for internal use
public static function unique_salt() {
return substr(sha1(mt_rand()),0,22);
}
// this will be used to generate a hash
public static function hash($password) {
return crypt($password,
self::$algo .
self::$cost .
'$' . self::unique_salt());
}
// this will be used to compare a password against a hash
public static function check_password($hash, $password) {
$full_salt = substr($hash, 0, 29);
$new_hash = crypt($password, $full_salt);
return ($hash == $new_hash);
}
}