2010-11-22 16 views
67

Rails 3.0'da bir dizeyi MD5 ile nasıl şifreleyebilirim? pass = MD5.hexdigest(pass) bir modelde oluşturur uninitialized constant MyModel::MD5RoR - MD5 nesil

+2

Bu gönderiye, kimlik doğrulama programınızın bir parçası olarak MD5/SHA kullanılmasının neden kötü bir seçenek olduğuna bakmak isteyebilirsiniz: http://codahale.com/how-to-safely-store-a-password/ –

+0

A terminoloji noktası: örneğin MD5 algoritması * şifreleme * değildir. Ayrıca şifrelemek istediğinizde * şifreleyebilirsiniz * şifresini *. Genellikle orijinal mesajı bir hashtan belirleyemezsiniz ve çoğu zaman bir karma algoritma kullanmanın noktasıdır. – Confusion

cevap

153

Bunun için Ruby standart kütüphanesinden Digest::MD5 kullanabilirsiniz.

irb(main):001:0> require 'digest/md5' 
=> true 
irb(main):002:0> Digest::MD5.hexdigest('foobar') 
=> "3858f62230ac3c915f300c664312c63f" 

Ve bir şey daha: MD5 bir karma algoritmasıdır. Hash algoritmasıyla bir şeyi "şifrelemezsiniz".

+2

Digest :: MD5.hexdigest ('foobar') 'çalıştı –

+13

Bir şey daha: MD5 temel olarak (kriptografik anlamda) bozuldu ve artık kullanılmamalıdır. Yeni bir yazılım projesi başlatırsanız, SHA512 veya bcrypt gibi daha güçlü bir karma algoritma kullanın ve bunları şifrelemeden önce şifrelere bir tuz eklemeyi unutmayın. – joschi

+6

MD5, kriptografik amaçlar için bozuldu, ancak dosyaları karşılaştırmak için hala kullanılabilir. Git yine de onu kullanır. AMA DON "T HASH PASSWORDS ILE MD5 – AlexQueue