如何实现加密用户名的哈希函数(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.now[:warning] = 'Wrong username/password'
render 'new'
end
我尝试在运行if语句之前加密用户名,但我可以让它工作。 我对用户名进行散列的方式是:
username = params[:session][:username].downcase
username_encrypted = Digest::SHA2.new(512).hexdigest(username)
任何想法如何做到这一点?
我想用这个来实现的是。 SQL中有一列有加密的用户名,另一列有“公共”用户名。公共用户名对于站点上的每个人都可见,并且加密的用户名仅存储在SQL中以进行身份验证。