Welcome to RUSaCis - эмулятор Interlude

Присоединяйтесь к нам прямо сейчас, чтобы получить доступ ко всем нашим возможностям. После регистрации и входа в систему вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию пользователям - так же приобрести исходный код. Это также быстро, так чего же вы ждете?

BCrypt PHP <> JAVA

mo9od

Бродяга
Регистрация
4 Ноя 2022
Сообщения
5
Реакции
0
Баллы
1
RaCoin
0
Создаю пароль в бд через php функцией
password_hash($data['password'], PASSWORD_BCRYPT);
при заходе и вводе логина в логах java выпадает ошибка Failed to decrypt user/password.
В чем причина, почему не может распознать?
 

Mi-star

Death Lord Ipos
INTERLUDE
INTERLUDE
Регистрация
24 Апр 2022
Сообщения
63
Реакции
30
Баллы
18
RaCoin
245
можно попробовать через доп. параметр в функцию

PHP:
$options =
    [
    'cost' => 10,
    ];

$password = password_hash($password, PASSWORD_BCRYPT, $options);

Ну и если не поможет, то ковырнуть исходник и подправить там BCrypt.java (это на случай, если возникнут salt-проблемы)
 

dred

Вассал
Регистрация
26 Дек 2020
Сообщения
80
Реакции
55
Баллы
18
RaCoin
35
можно попробовать через доп. параметр в функцию

PHP:
$options =
    [
    'cost' => 10,
    ];

$password = password_hash($password, PASSWORD_BCRYPT, $options);

Ну и если не поможет, то ковырнуть исходник и подправить там BCrypt.java (это на случай, если возникнут salt-проблемы)
или попробовать так

public function passwordEncrypt($password)
{
$encodePassword = password_hash($password, PASSWORD_BCRYPT);
$encodePassword = str_replace('$2y$10$', '$2a$10$', $encodePassword );

return $encodePassword;
}
 

mo9od

Бродяга
Регистрация
4 Ноя 2022
Сообщения
5
Реакции
0
Баллы
1
RaCoin
0
Да всё дело в том, что php фомирует вида "$2y$10$" а в яве такой формат "$2a$10$" из за этого и не может распознать)
 

Mi-star

Death Lord Ipos
INTERLUDE
INTERLUDE
Регистрация
24 Апр 2022
Сообщения
63
Реакции
30
Баллы
18
RaCoin
245
@mo9od я в дискорде скидывал подправленный Bcrypt.java, который фиксает данную проблему. Ну эт конечно если есть исходники, чтоб скомпилить
 

IanMarkov

Вассал
Регистрация
29 Сен 2021
Сообщения
44
Реакции
4
Баллы
8
Возраст
29
RaCoin
0
Если еще актуально, я таким образом делал:
Код:
function PassEncode( $pass, $type = "sha1" )
{
$type = null;
$hash = password_hash($pass, PASSWORD_BCRYPT, ['cost' => 10]);
    return str_replace('$2y$10$', '$2a$10$', $hash);
}
$_pass = PassEncode( $pass, $type );
 

dred

Вассал
Регистрация
26 Дек 2020
Сообщения
80
Реакции
55
Баллы
18
RaCoin
35
Если еще актуально, я таким образом делал:
Код:
function PassEncode( $pass, $type = "sha1" )
{
$type = null;
$hash = password_hash($pass, PASSWORD_BCRYPT, ['cost' => 10]);
    return str_replace('$2y$10$', '$2a$10$', $hash);
}
$_pass = PassEncode( $pass, $type );
В 3.5 вроде да
 
Сверху Снизу