我正在编写这个需要几个单独帐户的Java桌面应用程序(没有互联网连接),我需要将登录信息存储在可以访问的文件中以检查密码。
我不知道应该怎么做,如何在不看其他密码的情况下阅读加密文件?
答案 0 :(得分:2)
您永远不需要解密密码。您需要保存用户名,消化的密码和盐。盐是非常重要的,因为如果你不使用盐,很容易用彩虹表获取密码。
保存密码时,需要生成随机盐。然后将它与密码连接,并将其消化。然后存储用户名,消化密码和盐。
如果要检查密码,可以将用户编写的密码与为该用户存储的盐连接起来,将其消化并与保存的消化密码进行比较。
请注意您将使用的摘要算法。 SHA-XX也不错,默认情况下它包含在java中。
答案 1 :(得分:0)
最常见的解决方案是不加密文件,而是加密存储的密码。您可以使用单向加密算法(这使得易于加密,难以解密,保证加密密码的唯一性,因此两个不同的密码不会产生相同的加密字符串)。当用户再次提交密码时,您需要对其提交进行加密,并将加密的密码与存储在文件中的密码进行比较。
答案 2 :(得分:-1)
通常和安全的方法是按如下方式进行:
这可以确保有权访问该文件的人不会知道密码(因为MD5也不可逆),并且无法登录该应用程序。