首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Argon2验证密码

使用Argon2验证密码
EN

Cryptography用户
提问于 2022-09-27 08:50:47
回答 1查看 394关注 0票数 1

我正在尝试使用Kotlin/Spring开发Rest。其中的JSON请求应该有一个使用Argon2id完成的散列密码。获得密码散列是相当直接和简单的!但是,我很困惑如何验证在JSON请求中接收到的内容是否正确。这是将它与一个普通字符串匹配。这就是我如何实现哈希。

代码语言:javascript
运行
复制
val argon2PasswordEncoder = Argon2PasswordEncoder(64, 256, 4, 10240, 4)

val hashedPassword : String = argon2PasswordEncoder.encode(decryptedPassword)

println(hashedPassword)

现在,我可以将纯文本密码存储在Kotlin字符串中,并将其与散列密码相匹配,但我猜,这可能比加密的目的更重要!

我想的另一个选择可能是使用其他算法加密纯文本密码(比方说,我使用Jasypt)并将其存储在数据库中。然后当我收到请求时解密它,并将它与我收到的散列密码相匹配。但这似乎有点牵强,可能也是一个糟糕的设计!因为据我所见,Argon2PasswordEncoder中有D2方法,但是没有什么可解码的,它返回到一个字符串。有matches()方法。但让我回想起我脑海中的问题。如何存储纯文本密码?

你能告诉我什么是最好的方法吗?Argon2是一个从开始的糟糕的选择吗?或者只是我缺乏知识。

任何指示都会有帮助。谢谢!

EN

回答 1

Cryptography用户

发布于 2022-09-27 09:13:42

使用密码哈希验证密码需要用户以明文形式提供密码。

如果您使用HTTPS (即HTTPS),这应该不是太大的问题。

或者,您可以在服务器上生成随机密钥(您说它是API),并将它们分发给您的用户。一些好处包括:

  1. 单次使用随机密钥可以被撤销,而不会导致拒绝服务。
  2. 如果需要,也可以使用Argon2对其进行散列。
票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/102035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档