如何将bcrypt摘要密码转换回原始字符串?

问题描述 投票:0回答:1

我正在开发一个ruby应用程序,我有一个后端User表,该表使用gem-bcrypt存储加密的密码。我实际上如何将密码转换回原始密码以在我的视图中显示它?这是用于提取我的密码的代码

def self.digest(string)        
cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST : BCrypt::Engine.cost        
BCrypt::Password.create(string, cost: cost)    
end
ruby-on-rails ruby encryption hash bcrypt
1个回答
0
投票

来自他们的readme

背景

哈希算法会获取大量数据(例如,您的用户密码),并为其创建一个“数字指纹”或哈希。因为此过程是不可逆的,所以无法从散列回密码。

换句话说:

hash(p) #=> <unique gibberish>

您可以存储哈希值,并对照由可能有效的密码构成的哈希值进行检查:

<unique gibberish> =? hash(just_entered_password)

我也不明白你为什么要这么做。如果您可以将其恢复为密码,那么什么会阻止黑客窃取您的数据集来执行相同的操作?散列密码的全部重点是不能撤消密码。您只能检查提供的密码是否正确。

© www.soinside.com 2019 - 2024. All rights reserved.