Какой вид шифрования использует Sentry

Я создаю приложение для iOS для уже существующего веб-приложения, которое я создал. Веб-приложение использует Laravel и часовой для шифрования паролей. Новые пользователи должны быть в состоянии быть созданы из приложения iOS. Сервер, с которым общается веб-приложение, написан на php, но не использует laravel или sentry. Мне нужна только одна часовая функция, которую они используют для шифрования паролей.

Какую функцию использует часовой для хэширования паролей? Я говорю о Cartalyst\Sentry\Hashing\NativeHasher

Мне нужно иметь возможность дублировать эту функцию и использовать ее в отдельном файле php.

1 ответ

Решение

Я нашел эту ссылку: https://github.com/cartalyst/sentry/blob/master/src/Cartalyst/Sentry/Hashing/NativeHasher.php

и этот код то, что вы хотите, вероятно:

public function hash($string)
{
    // Usually caused by an old PHP environment, see
    // https://github.com/cartalyst/sentry/issues/98#issuecomment-12974603
    // and https://github.com/ircmaxell/password_compat/issues/10
    if (!function_exists('password_hash')) {
        throw new \RuntimeException('The function password_hash() does not exist, your PHP environment is probably incompatible. Try running [vendor/ircmaxell/password-compat/version-test.php] to check compatibility or use an alternative hashing strategy.');
    }

    if (($hash = password_hash($string, PASSWORD_DEFAULT)) === false) {
        throw new \RuntimeException('Error generating hash from string, your PHP environment is probably incompatible. Try running [vendor/ircmaxell/password-compat/version-test.php] to check compatibility or use an alternative hashing strategy.');
    }

    return $hash;
}
Другие вопросы по тегам