我看过许多关于使用盐和哈希创建可以存储在数据库中的安全版本的密码的帖子。
但是,一个问题让我感到困惑,我看不出有什么问题,所以我想我会在这里发布这个问题,看看其他人是否能指出这个想法中的任何缺陷。
我的基本想法是生成一个公钥/私钥对,然后销毁私钥。我对公钥/私钥密码学的有限理解是,如果我没有私钥,那么解密用公钥加密的消息“在数学上是不可能的”。
我会使用公钥加密密码,然后将加密版本存储在数据库中。当有人尝试登录时,我只需使用公钥加密密码并查看它是否与存储的密码匹配?
这个想法有什么可怕的缺陷吗?盐和哈希会更安全吗?