has_secure_password
bcrypt-ruby kullanır. bcrypt-ruby
, sizin için otomatik olarak depolama ve tuz oluşumunu ele alır. bcrypt-ruby
'dan gelen tipik bir karma şunun gibi görünür: $2a$10$4wXszTTd7ass8j5ZLpK/7.ywXXgDh7XPNmzfIWeZC1dMGpFghd92e
.
- versiyonu: 2a:
- maliyeti: 10
- tuzu: $ 2a $ 10 $ 4wXszTTd7ass8j5ZLpK bu fonksiyon verimleri, örneğin karma için
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
: Bu karma Aşağıdaki fonksiyon kullanarak içten ayrılmıştır/7.
- karma: ywXXgDh7XPNmzfIWeZC1dMGpFghd92e
==
BCrypt::Password
ait taşımasının avantajlı tuz ayıklar ve geçirilen dizeye geçerlidir:
BCrypt::Password.create('bla') == 'bla' # => true
O yazar tuz için ayrı bir sütun soruyordum inanıyordu. Bu tuzu kontrol etmemizin bir yolu yoktur, bu yüzden kullanıcı için bir karma genişletici gibi davranır - sadece 1 sütundan ödün vermek pahasına bir süre meselesini kırmaz. – jdoe
Soru, 'has_secure_password herhangi bir tuzlama şekli kullanıyor mu?' Sorusu vardı. Sanırım çoğu zaman bir veritabanının güvenliği tehlikededir, bu yüzden eğer tuz fazladan bir sütun içine kaydedilirse bir fark yaratmaz. Bununla birlikte, veritabanının yalnızca tek bir sütununun ele geçirilmesi durumunda daha güvenli olduğunun doğru. – fabi
Merhaba Fabi, cevabınız için teşekkürler, daha büyük bir kitle için ilginç/uygulanabilir olduğunu düşünüyorsanız lütfen soruyu da not alın. –