2012-11-20 70 views
0

我正在研究一項功能,其中我必須手動更新數據庫中的所有帳戶詳細信息。它工作正常,但唯一的問題是,既然我們還使用了登錄功能的色器件寶石。我必須存儲手動更新密碼的加密格式。所以我只想知道設計寶石如何加密密碼。Rails:設計寶石密碼加密

如果我的密碼是「密碼」。我必須手動加密這個數據庫,並將其存儲在數據庫中,方法與設計相同。

請儘快恢復幫助。

回答

3

我假設您有一個用戶名/密碼列表,您希望將其大量分配到數據庫中以便在通過Devise進行身份驗證的應用程序中使用。

制定默認使用BCrypt,(還有一個寶石)

require 'bcrypt' 

class User < ActiveRecord::Base 
    # users.password_hash in the database is a :string 
    include BCrypt 

def password 
    @password ||= Password.new(password_hash) 
end 

def password=(new_password) 
    @password = Password.create(new_password) 
    self.password_hash = @password 
end 

end 

您可以在列表中創建用戶的實例,並保存到數據庫中Rake任務,例如。

@user = User.new 
@user.username = "foobar" 
@user.password = "password" 
@user.save 
+0

謝謝。它的工作現在。 – Karthikds

+0

我不工作:( – ashwintastic