2012-04-23 2 views
0

내 RoR에서 BCrypt를 사용하고 있으며 이전에 사용한 16 진수 대신 숫자가 나타납니다. 여기에 형법이 있습니다.Ruby BCrypt 반환 숫자

username = params[:username] 
password = params[:password] 

encrypted_password = BCrypt::Password.create(password) 
encrypted_password = encrypted_password.hash 

encrypted_password는 변수 내가 자바 BCrypt을 사용했습니다 내가 $의 2asfa의 $의 asdfasfsafsad 뭔가를 기다리고 있었다입니다 4245597694343378249.처럼 숫자로 나온다. 아무도 내가 뭘 잘못하고 있는지 궁금해했다.

도움을 주시면 대단히 감사하겠습니다.

+0

그냥 메모를, 그것은 해쉬입니다. –

+0

@ AndrewMarshall 감사합니다 앤드류, 나는 그 차이를 잘 모릅니다. 구어체의 차이점은 암호화가 정보를 왜곡시키려는 의도와 함께 2 가지 방법이며 나중에 해시가 일방적 인 고유 기능인 반면 일반 텍스트로 다시 변환한다는 것입니다. –

답변

3

숫자의 순서로 나오는 암호 변수는 암호화 된 암호에 적용 할 .hash 때문입니다. 그래서 당신은 길이와 내용을 기반으로 해시를 제공하는 String # hash 메소드를 호출합니다.

방금 ​​다음을 수행 기대하는 bcrypt 출력 보려면 : 정말 정확하지 않습니다는 "암호화"호출

username = params[:username] 
password = params[:password] 

encrypted_password = BCrypt::Password.create(password) 
puts encrypted_password 

건배, 숀

+0

감사합니다. Sean, 그게 전부입니다. 어떤 이유로 Ruby의 BCrypt 구현은 내가 익숙한 것보다 조금 더 많은 마법을 포함하고있는 것처럼 보입니다. 문자열 해시를 암호 해시로 사용하는 인스턴스를 알려주시겠습니까? –

+0

솔직히 말해서 나는 실제적인 사용법을 본 적이 없습니다. 내가 그것을 사용할 수있는 유일한 것은 비교 일 것이다. 수천 개의 문자열을 .hash로 저장하고 평등을 검사하는 것은 문자열 자체보다 효과가 적은 것처럼 보일 것이다. – Sean

관련 문제