Java 没有数据库保存用户信息的任何方法

Java 没有数据库保存用户信息的任何方法,java,database,Java,Database,我有一个需要登录的应用程序,但使用该应用程序的用户数量不超过40。在这个应用程序中,我从sql server数据库中获取了一些数据,在那里我拥有读取权限,而且我不能在数据库中创建一个表供用户验证 另外,我认为在另一台机器上的其他数据库中创建用户表不是一个好主意(例如,我可以在另一台机器上的mysql中创建一个用户表,但它是否仅用于用户验证) 现在我只需将用户信息保存在.properties文件中,还有其他好主意吗 顺便说一句,我的应用程序中使用的编程语言是java。将数据存储在文件中;如果程序的

我有一个需要登录的应用程序,但使用该应用程序的用户数量不超过40。在这个应用程序中,我从sql server数据库中获取了一些数据,在那里我拥有读取权限,而且我不能在数据库中创建一个表供用户验证

另外,我认为在另一台机器上的其他数据库中创建用户表不是一个好主意(例如,我可以在另一台机器上的mysql中创建一个用户表,但它是否仅用于用户验证)

现在我只需将用户信息保存在.properties文件中,还有其他好主意吗


顺便说一句,我的应用程序中使用的编程语言是java。

将数据存储在文件中;如果程序的多个实例正在使用,请在读取前使用操作系统锁定和解锁。如果只是一个应用程序,您可以通过互斥设置(同步方法)进行操作。

将数据存储在文件中;如果程序的多个实例正在使用,请在读取前使用操作系统锁定和解锁。如果只是一个应用程序,您可能可以通过互斥设置(同步方法)来解决问题。

我想将数据以XML格式保存在文件中是个好主意。您还可以在其中保存加密/哈希密码。每次新用户创建一个块时,都会附加这样的块

<users>
...
...
<user>
  <username>first_user</username>
  <password>some_obfuscated_password</password>
  <permission>1,3,4</permission>
  <otherDetails>some detail </otherDetails>
</user>
</users>

...
...
第一用户
某些\u混淆的\u密码
1,3,4
一些细节

几乎所有语言中都有解析XML的标准库。这应该不是问题。而且,如果有人看到文件,他就无法获得密码。您也可以使用salt。

我想将数据以XML形式保存在文件中是个好主意。您还可以在其中保存加密/哈希密码。每次新用户创建一个块时,都会附加这样的块

<users>
...
...
<user>
  <username>first_user</username>
  <password>some_obfuscated_password</password>
  <permission>1,3,4</permission>
  <otherDetails>some detail </otherDetails>
</user>
</users>

...
...
第一用户
某些\u混淆的\u密码
1,3,4
一些细节

几乎所有语言中都有解析XML的标准库。这应该不是问题。而且,如果有人看到文件,他就无法获得密码。您也可以使用salt。

好主意,我将尝试将它们保存在xml文件中。不要只是混淆密码-在大多数情况下,如果有人访问用户文件,攻击者将能够撤销混淆,并以明文形式读取用户密码。最好使用一个不可逆的操作和一个对每个用户应该不同的salt(例如HMAC-SHA1)。事实上,密码不是重点,我们只是将应用程序用作演示。我关心多个用户注册时的并发性。这可能会有所帮助。在这里可以看到更多关于并发性的讨论:但如果只是一个演示,您可以只有一个管理员可以编辑文件。或者,由于您不需要密码,只需手动创建一个文件并将其用作只读文件即可。Subversion在服务器配置中的做法。好主意,我将尝试将它们保存在xml文件中。不要只是混淆密码-如果有人在大多数情况下访问用户文件,攻击者将能够反转混淆并以纯文本读取用户密码。最好使用一个不可逆的操作和一个对每个用户应该不同的salt(例如HMAC-SHA1)。事实上,密码不是重点,我们只是将应用程序用作演示。我关心多个用户注册时的并发性。这可能会有所帮助。在这里可以看到更多关于并发性的讨论:但如果只是一个演示,您可以只有一个管理员可以编辑文件。或者,由于您不需要密码,只需手动创建一个文件并将其用作只读文件即可。Subversion在服务器配置中的操作方式。