【发布时间】:2020-04-22 16:17:40
【问题描述】:
所以我用java编写了一个寄存器和一个登录系统。我的注册计划是:用户输入用户名,然后输入密码。
密码被加盐并存储在 .txt 文件中。 现在当用户必须输入登录系统的密码时,我如何检索原始密码以从 .txt 文件中进行检查?
我的问题有两个: 我如何对密码加盐然后存储它。 怎么找回原来的密码,所以去查一下。
我已经搜索了很多东西,但我一无所获。
【问题讨论】:
-
据我所知,您应该对密码进行加盐和加密并以这种方式保存。然后你应该对输入的密码进行加盐和加密,并检查它们是否匹配,但永远无法检索到原始密码。如果你能找回原来的那是不安全的
-
您的术语有误。我的猜测是您对密码进行加盐和 散列。加盐包括在密码中附加或附加一些随机值。散列包括将加密摘要函数应用于盐+密码。根据定义,摘要是一种方式。如果您可以从哈希中找到密码,它将破坏哈希的整个目的,而这正是为了防止这种情况。您需要使用相同的盐对用户的密码进行加盐,应用相同的加密摘要,并将新的哈希值与存储的哈希值进行比较。
-
@JB Nizet 你是对的。这就是我需要的。我在哪里可以找到类似的东西,因为我对密码学一无所知
-
查看github.com/Ninja-Squad/globe42/blob/master/backend/src/main/… 的示例(在 Kotlin 中,但它非常接近 Java)。