【问题标题】:How to create a user authentication without SQL?如何在没有 SQL 的情况下创建用户身份验证?
【发布时间】:2014-08-09 03:36:38
【问题描述】:

我有一个在 vb.net 中运行的项目。目前是一个很小的项目,所以我使用XML序列化作为存储信息的主要方式。 IE。在 .exe 文件夹中创建一个 xml 文件。并从那里保存/读取。

问题:由于项目很小,我没有设置 SQL 数据库,我想保持这种状态。但我确实想创建一个用户/密码来访问该程序。

我尝试过的:我尝试过使用 XML 序列化,但隐藏了 xml 文件。一旦我隐藏它,我就无法访问该文件(说我没有权限)。

在不使用 SQL 且不放弃安全性的情况下拥有相同实用程序的好方法是什么?

【问题讨论】:

  • 如果正常情况下将 Exe 安装到 Program Files,您的应用可能无权读取/写入那里。这就是Users\AppData 的用途。它似乎可以在 IDE 中工作,因为 AppPath 是您存储 VS 项目的位置,例如 MyDocuments。由于您决定使用 XML 的东西将是可读的。您可以加密名称/密码,或使用二进制序列化(或两者)
  • 用户很可能会发现您的密码。
  • 是的。我真的不需要太多的安全性,但我想看看什么被认为是没有 SQL 的最佳选择。
  • 那为什么要隐藏呢?就像@Plutonix 建议的那样,只需将文件放在那里。
  • 存储数据文件的位置与安全性无关。在用户自己的系统上“隐藏”文件是有问题的:如果他们想将数据移动到新的驱动器/系统会发生什么?保护登录信息完全是另一回事,拥有数据库并不总能消除这一点。

标签: sql xml vb.net user-input


【解决方案1】:

隐藏文件毫无意义。您应该简单地对密码进行哈希处理,然后像存储任何其他数据一样存储数据。如果您也使用数据库,这正是您要做的。当用户注册时,您对他们提供的密码进行哈希处理并存储结果。然后任何人都可以在不破坏安全性的情况下查看数据,因为他们无法从哈希中获取原始值。当用户登录时,您对他们提供的密码进行哈希处理,并将其与数据库中的值进行比较,如果匹配,则用户通过身份验证。

您应该阅读一些关于散列的一般知识,并考虑添加盐以提高安全性,尽管在这种情况下这可能不值得。

【讨论】:

    猜你喜欢
    • 2021-02-07
    • 2019-05-22
    • 2023-02-02
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 2022-01-03
    • 2017-10-23
    • 1970-01-01
    相关资源
    最近更新 更多