programing tip

has_secure_password는 어떤 형태의 솔팅을 사용합니까?

itbloger 2020. 11. 12. 07:59
반응형

has_secure_password는 어떤 형태의 솔팅을 사용합니까?


has_secure_password암호화 된 비밀번호를 데이터베이스에 저장하는 데 사용하고 싶습니다 . has_secure_password어떤 형태의 염장을 사용 하면 인터넷에서 찾을 수 없습니다 . 소금을 사용하는 경우 어떻게 작동합니까? 누구든지 나를 위해 이것을 명확히 할 수 있습니까?

Thijs


has_secure_passwordbcrypt-ruby를 사용합니다 . bcrypt-ruby자동으로 소금 저장 및 생성을 처리합니다. 의 일반적인 해시는 bcrypt-ruby다음과 같습니다 $2a$10$4wXszTTd7ass8j5ZLpK/7.ywXXgDh7XPNmzfIWeZC1dMGpFghd92e.. 이 해시는 다음 함수를 사용하여 내부적으로 분할됩니다.

def split_hash(h)
  _, v, c, mash = h.split('$')
  return v, c.to_i, h[0, 29].to_str, mash[-31, 31].to_str
end

예제 해시의 경우이 함수는 다음을 생성합니다.

  • 버전 : 2a
  • 비용 : 10
  • 소금 : $ 2a $ 10 $ 4wXszTTd7ass8j5ZLpK / 7.
  • 해시 : ywXXgDh7XPNmzfIWeZC1dMGpFghd92e

==의 α- 함수 BCrypt::Password추출 소금은 전달 된 문자열에 적용 :

BCrypt::Password.create('bla') == 'bla' # => true

참고 URL : https://stackoverflow.com/questions/10139954/does-has-secure-password-use-any-form-of-salting

반응형