【问题标题】:Hash user password and check hash value in database in Android在Android中哈希用户密码并检查数据库中的哈希值
【发布时间】:2017-11-23 19:32:52
【问题描述】:

这是一个由两部分组成的问题:

  1. 如何在 Android 应用程序中对用户密码进行哈希处理并将哈希存储在数据库中?

  2. 如何转换用户登录密码并检查数据库中已经存储的哈希?

注意:我只对与 Android (Java) 相关的代码感兴趣。如果你能解释一下如何使用 Android Studio 做到这一点,那就更好了。

【问题讨论】:

  • 您要存储密码的数据库在哪里?根据我的经验,密码检查将在服务器端进行,不是在您本地的 Android 手机上。
  • 您要将用户密码存储在本地数据库还是远程服务器中??
  • 密码将存储在服务器端。但是如果我也想存储在本地数据库中,你能给出答案吗?
  • 我认为您应该能够使用jBCrypt library 来计算密码哈希,尽管我自己从未尝试过。

标签: java android security hash passwords


【解决方案1】:

您可以使用链接代码计算字符串的PBKDF2 function in Android 哈希值。如果要在本地存储密码,请将散列字符串存储在本地 SQL 数据库中。如果要转换登录密码,只需对用户输入的密码进行哈希处理,然后在本地数据库中执行 SQL 查询,将新哈希密码与存储在数据库中的密码进行比较。但是,我建议不要将密码存储在手机上,而是使用远程数据库。根据您使用的数据库,如何存储和获取数据的答案会有所不同。但是,您仍然可以以相同的方式计算 BPKDF2 哈希。

【讨论】:

  • 不,请不要推荐 MD5 用于密码哈希,它太快了,可以用20 Giga MD5 per second 暴力破解。推荐的密码哈希函数是 BCrypt、SCrypt、PBKDF2 和 Argon2。
  • 好吧,我不知道。谢谢你的澄清!编辑答案以反映这一点。
  • @JohnDoe 我在理论上得到了这个概念,但你能提供我的代码吗?您提供的链接将我带到更多链接,实际上并没有提供任何代码。
  • 对于 md5 哈希,请查看此链接 (stackoverflow.com/questions/4846484/md5-hashing-in-android),对于 PBKDF2 加密/解密,请查看此 github 链接 (gist.github.com/scotttam/874426)
猜你喜欢
  • 2019-04-07
  • 2018-01-31
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 2017-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多