2013-06-08 10 views
0

mysql db에서 사용자를 인증하는 작업을하고 있습니다. 사용자 패스워드는 Ruby on Rails의 devise gem 프레임 워크에 의해 해싱됩니다.자바에서 패스워드를 비교하는 방법 devise gem ruby ​​on rails에 의해 해싱 됨

Docs는 암호 해시를 위해 BCrypt도 사용한다고 말합니다. jBcrypt의 문제는 Google123 해싱은 BCrypt 알고리즘을 사용하여

$2a$10$Qj.7VHa8tJcSFAU9eR1o8eCiXzFSkQPQxpODL971xKiDFbYjdaWyS 

때문에 그것이 사실 반환해야하지만

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

그.

이 문제를 해결할 수 있도록 도와 주시겠습니까? 아니면 Bcrypt의 다른 구현을 찾아야합니까?

+0

이게 도움이 될 수 있습니다 : http://stackoverflow.com/questions/277044/do-i-need-to-store-the-salt-with-bcrypt –

답변

-2
+0

예 이론적으로는 효과가 있지만 실제로 작동하지 않아야합니다. . 매번 거짓으로 돌아오고 있습니다. 여기서 언급하기 위해 패스워드는 레일즈 프레임 워크에서 devise gem ruby에 의해 해시되고 DB에 있습니다. Java Ruby에서는 잘 작동하지만 Java BCrypt API에서는 작동하지 않습니다. 어떤 제안? –

+0

@RahatALi Java에서 암호를 해싱하여 모든 것이 동일하게 수행되도록하는 것이 좋습니다. –