【问题标题】:Encrypt text file to prevent readability加密文本文件以防止可读性
【发布时间】:2023-03-27 16:58:01
【问题描述】:

我正在创建一个简单的基于 java 的登录系统。它询问登录详细信息并检查文本文件以查看凭据是否匹配。如果他们这样做,则允许用户通过安全性。截至目前,任何人都可以打开“.txt”文件并阅读凭据。我想防止这种情况发生。我怎样才能做到这一点?

P.S.- 我仍在学习基础知识并保存 DBMS 以备后用,仅此而已。

【问题讨论】:

  • 您将密码存储在数据存储中,但数据存储是平面文件而不是数据库(这意味着对于第 n 个用户,您必须通过 (n-1) 个密码才能找到它们,这使得它非常不安全)。这是可能,但更大的问题是……如果你只是在学习这些东西,为什么还要为文件系统烦恼呢?为什么不半途而废并使用数据库?
  • 因为我不知道数据库语言如何足够好地用 java 实现它们。正如我所说,我还在学习。
  • 这正是我的观点。尝试推出自己的登录系统存在很多危险,并且确实需要了解实际登录系统的组件。由于您正在学习,我个人认为这是一个学习一些更好方法的机会。我可以尊重您想要基本方法,但说真的,您不想想学习一种非常非常糟糕但“它有效”的方法,以便以后使用。
  • 我不会推出登录系统。这只是我为自己做的一个项目。此外,这不仅仅是关于这个项目,而是关于学习如何将数据(任何类型的数据)存储在一个文件中而不让用户读取它。
  • 您永远不应该加密您的用户密码。您需要使用散列代替一些强大的散列,例如 PBKDF2、bcrypt、scrypt 和 Argon2。由于散列函数是单向函数,因此您将无法“解密”散列。为了验证您的用户,您可以再次通过哈希函数运行密码,以便与存储在数据库中的哈希值进行比较。查看更多:How to securely hash passwords?

标签: java encryption


【解决方案1】:

底线:使用散列算法,并了解加盐和散列的含义。您仍然可以将密码存储在文本文件中,并且您无需了解任何有关数据库的知识。

如果您是新手,但在接受登录信息时,是时候了解散列的含义了。

【讨论】:

    猜你喜欢
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    相关资源
    最近更新 更多