Как сравнить пароли в Java, хешированные с помощью devise gem ruby ​​on rails

Я работаю над задачей аутентификации пользователей из базы данных mysql. Пароли пользователей хешируются с помощью devise gem framework для Ruby on Rails.

Документы говорят, что они также используют BCrypt для хеширования паролей. Проблема с jBcrypt заключается в том, что

BCrypt.checkpw("Google123",  "$2a$10$Qj.7VHa8tJcSFAU9eR1o8eCiXzFSkQPQxpODL971xKiDFbYjdaWyS"); // not working nor 
BCrypt.checkpw("test123test", "$2a$10$vGeVVu.E0XGjlNEa0xMCK.R0SEH0aFuyJpefrq01Axz6WSbHApPEu"); // is working. It always returns false. 

Хотя он должен возвращать true, так как хеширование Google123

$2a$10$Qj.7VHa8tJcSFAU9eR1o8eCiXzFSkQPQxpODL971xKiDFbYjdaWyS 

с использованием алгоритма BCrypt.

Не могли бы вы помочь мне решить эту проблему или мне следует поискать другую реализацию Bcrypt.


person Rahat ALi    schedule 08.06.2013    source источник
comment
Может быть, это поможет вам: stackoverflow.com/questions/277044/   -  person Ramandeep Singh    schedule 08.06.2013


Ответы (1)


Это должно работать нормально. Взгляните на документацию здесь http://static.springsource.org/spring-security/site/docs/3.1.x/apidocs/org/springframework/security/crypto/bcrypt/BCrypt.html.

person Mike M    schedule 08.06.2013
comment
Да, теоретически должно работать, но практически не работает. Каждый раз возвращает false. Просто упомянем здесь, что пароли хэшируются devise gem ruby ​​on rails framework, и они находятся в базе данных. Они отлично работают в Ruby, но не с Java BCrypt API. Какие-либо предложения? - person Rahat ALi; 08.06.2013
comment
@RahatALi Я бы порекомендовал хэшировать пароли на Java, чтобы убедиться, что все сделано одинаково. - person Mike M; 08.06.2013