Ruby on rails 验证ruby on rails的哈希用户名和密码
我如何实现一个哈希函数(SHA512)来加密用户名,并在SQL server中检查用户名和密码是否正确 如果您设置了明文用户名,则立即登录Ruby on rails 验证ruby on rails的哈希用户名和密码,ruby-on-rails,authentication,Ruby On Rails,Authentication,我如何实现一个哈希函数(SHA512)来加密用户名,并在SQL server中检查用户名和密码是否正确 如果您设置了明文用户名,则立即登录 user = User.find_by(username: params[:session][:username].downcase) if user && user.authenticate(params[:session][:password]) log_in user redirect_to :root else flash
user = User.find_by(username: params[:session][:username].downcase)
if user && user.authenticate(params[:session][:password])
log_in user
redirect_to :root
else
flash.now[:warning] = 'Wrong username/password'
render 'new'
end
在运行if语句之前,我尝试对用户名进行加密,但我可以让它工作。
我散列用户名的方式是:
username = params[:session][:username].downcase
username_encrypted = Digest::SHA2.new(512).hexdigest(username)
你知道怎么做吗
我想用这个来实现的是。在SQL中也有一列使用加密用户名,另一列使用“public”用户名。公共用户名对站点上的每个人都可见,加密用户名存储在SQL中仅用于身份验证。您查看过Desive gem吗?为什么要散列用户名?是的,而且加密用户名的函数在Desive中也不存在。如果我错了,请纠正我@Sergio Tulentsev我有一个用于登录用户名的表,另一个表中用户有另一个公共(对其他用户可见)用户名。我的意思是,你需要它做什么?你想用这个做什么?我想用这个做什么。在SQL中也有一列使用加密用户名,另一列使用“public”用户名。其中公共用户名对站点上的每个人都可见,加密用户名存储在SQL中仅用于身份验证。