Warden - jak ustawić podwójne szyfrowanie md5

Cześć,

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ć.

Edit: https://gist.github.com/131050

Z ciekawości pytanie: po co?

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ć.

Użyj bcrypta jak normalni ludzie i będziesz miał spokój :wink:

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.

Dzięki udało się :slight_smile: