数据库端的SHA-256

时间:2015-05-10 19:17:25

标签: database security hash password-protection sha256

我正在制作电视连续剧的移动应用。基本上就像一个跟踪器,知道要观看什么剧集和什么时候。我想存储观看的剧集,用户节目在数据库上的信息。 (关于我从休息api得到的节目的信息)

所以问题是我不需要在这里找到服务器,我只是不知道应该做什么。

问题是我想使数据库安全。从我所读到的最佳实践是使用加密强大的随机数生成器创建一个盐并将其添加到密码中,然后使用哈希算法(例如SHA-256)对整个事物进行哈希处理。 然后我将哈希密码和salt存储在数据库中,当我想检查密码是否正确时,只需再次哈希,然后与数据库中的密码进行比较。

所以我在Java中有一个特殊的类可以创建这样的盐,我需要知道的是在哪里以及如何散列整个事物。我问的是什么。我不想创建一个只会哈希密码的服务器。

另外一件事是如何实现自动登录,一旦我想出来,我也想添加。

我希望现在我想要在这里做得更清楚。

1 个答案:

答案 0 :(得分:0)

听起来像是在构建一个独立的移动应用,即不与服务器通话。

您希望应用程序受密码保护(即使他们的手机已经存在),并且您希望将此密码存储为哈希值,以便在丢失的root用户手机上无法恢复pwd。

SHA256是一个很好的哈希,但你想要的是一个真正的慢哈希。使用bcrypt,PBKDF2或scrypt。

盐不是秘密。

当用户创建他们的帐户时,创建salt,使用salt散列pwd并将密码和salt存储在某处。每次用户登录时,获取salt,密码与之前相同,并与保存的密码进行比较。如果相同,则用户进行身份验证。

您不需要将swd存储在sqlite中。将它存储在文本文件中可能更容易。