我正在为我创建的现有Web应用程序构建iOS应用程序。 Web应用程序使用laravel和sentry来加密密码。必须能够从iOS应用程序创建新用户。 Web应用程序与之通信的服务器是用php编写的,但不使用laravel或sentry。 我需要的唯一功能是他们用来加密密码的功能。
哨兵使用什么函数来散列密码?我说的是Cartalyst \ Sentry \ Hashing \ NativeHasher
我需要能够复制此功能并在单独的php文件中使用它。
答案 0 :(得分:4)
我找到了这个链接: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;
}