我正在编写这个Java桌面应用程序(没有互联网连接),它需要几个单独的帐户,我需要将登录信息存储在一个可以访问以检查密码的文件中。
我不知道该怎么做,你怎么能在看不到别人密码的情况下读取加密文件呢?
发布于 2012-02-16 20:37:34
您永远不需要解密密码。您需要保存用户名、摘要密码和盐。盐是非常重要的,因为如果你不使用它,很容易得到一个彩虹表的密码。
当你保存密码时,你需要生成一个随机的盐。然后将其与密码连接起来,并对其进行摘要。然后存储用户名、摘要密码和盐。
当您想要检查密码时,您可以将用户编写的密码与为该用户存储的盐连接起来,对其进行摘要,并将其与保存的摘要密码进行比较。
要小心使用您将使用的摘要算法。SHA-XX不错,默认情况下它包含在java中。
发布于 2012-02-16 20:24:38
最常见的解决方案不是加密文件,而是加密存储的密码。您可以使用单向加密算法(这使得加密容易,难以解密,并保证加密密码的唯一性,因此两个不同的密码不会产生相同的加密字符串)。当用户再次提交其密码时,您将对其提交的密码进行加密,并将加密后的密码与存储在您的文件中的密码进行比较。
发布于 2012-02-16 20:21:04
一种常见且安全的方法是按如下方式进行:
这可以确保有权访问该文件的人不知道密码(因为MD5是不可逆转的),并且不能登录应用程序。
https://stackoverflow.com/questions/9311124
复制相似问题