更改Devise :: TokenGenerator的摘要

时间:2014-11-03 12:40:59

标签: ruby-on-rails devise devise-invitable

我想在Devise :: TokenGenerator中使用md5代替sha256。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

实施您自己的加密器。

# lib/devise/encryptors/md5.rb
require 'digest/md5'

module Devise
  module Encryptors
    class Md5 < Base
      def self.digest(password, stretches, salt, pepper)
        str = [password, salt].flatten.compact.join
        Digest::MD5.hexdigest(str)
      end
    end
  end
end

然后,您可以在config/initializers/devise.rb

中将其设置为加密器
config.encryptor = :md5

不要忘记在用户模型中启用:encryptable。

此外,您应该确保加载新文件,例如将其添加到用户的类中:

require Rails.root.join('lib', 'devise', 'encryptors', 'md5')