Chcę ustawić w Wardenie podwójne haszowanie md5 tak jak to robiłem w Devise:
module Devise
module Encryptors
class Md5 < Base
def self.digest(password, stretches, salt, pepper)
str = [password].flatten.compact.join
Digest::MD5.hexdigest(Digest::MD5.hexdigest(str))
end
end
end
end
Jak się do tego zabrać narazie nie znalazłem tego w dokumentacji. Trzeba będzie pewnie zarequirować digest i zrobić jakąś strategię. Ktoś już miał z tym doczynienia?
Nie wiem jak się do tego zabrać.
Po pierwsze, MD5 nie jest funkcją szyfrującą, tylko haszującą.
Po drugie, podwójny hasz w żaden sposób nie zwiększa bezpieczeństwa, co najwyżej może je zmniejszyć.
Problem jest taki, ze przenoszę baze danych z jakiejs starej strony w phpfusion i mam tam właśnie podwójny hasz. Zawsze mogę dodać do tego salt.
Jeżeli jest taka możliwość to jak zrobić migrację do bcrypta? Nie mam kolumny salt w bazie.
bcrypt zapisuje salt razem z haslem, wiec nie potrzebujesz oddzielnej tabeli. migracje mozesz zrobic albo przez zapisywanie hasla bcryptowego przy logowaniu (czyli login scheme taki: jak nie ma bcrypt to logujesz po md5 i zapisujesz haslo w bcrypt, jak jest bcrypt to sprawdzasz haslo bcrypt i kasujesz md5). Albo mozesz po prostu brute force pozgadywac te hasla, 2x md5 to chwila jak masz pod reka karte graficzna.