Ruby / Ruby on Rails中的密码散列

时间:2019-04-17 07:10:51

标签: ruby-on-rails ruby encryption

这是我的第一篇文章。我只是好奇,因为我已经读过有关密码哈希的知识,而且经常被告知我改用BCrypt。但是,是否可以使用任何文档以使我自己尝试对密码进行哈希处理?我知道使用BCrypt出于安全原因是最佳选择,但是我想在用户不使用BCrypt或任何其他gem的情况下试用并理解围绕密码散列的代码或功能。

为此,我尝试使用“ SecureRandom”和“ Digest”,但似乎仍然无法获得所需的输出。也许我还是这个新手。

这是我的密码。我对此很陌生。

require 'digest'

class UsersController < ApplicationController

  def new
    @user = User.new
  end

  def create
    @user = User.new(user_params)
    if @user.save
      redirect_to root_url
    else

    end
  end

  private

  def user_params
    params.require(:user).permit(:first_name, :last_name, :email, password_hash([:password]))
  end

  def password_hash(password)
    hash = Digest::SHA256.hexdigest(password)
  end
end

将其转换为字符串后,用户注册后数据库中的密码列将为空。我知道我的代码很乱,但是我想尝试不使用gem来加密密码。

1 个答案:

答案 0 :(得分:0)

我的团队始终使用Devise gem与用户合作。使用简单,拥有 功能强大:密码加密,发送电子邮件,授权和其他