首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java投票系统

Java投票系统
EN

Stack Overflow用户
提问于 2010-10-25 15:37:23
回答 4查看 2.3K关注 0票数 5

我必须用java为学校创建一个投票系统,这个系统将被用来为电影投票。它会让所有的用户和电影在别人的手中建立起来。

它是一个控制台应用程序,它将在多台计算机上运行。我对此有以下几个问题:

  1. 我的老师要我们用一个文本文件来维护所有的数据,这会是个问题吗?切换到像MySQL这样的数据库会更好吗?为什么?
  2. 当用户输入登录信息时,程序是否应该(a)在文本文件中查找用户的凭据,然后为用户重新创建对象,或者(b)重新创建所有用户,然后为用户检查数组列表并检查密码?

或者说第二条,会有更好的方法去做吗?

EN

回答 4

Stack Overflow用户

发布于 2010-10-25 15:47:42

由于这是学校的作业/项目,你应该遵照老师的指示和规格(以获得更好的分数)。如果这是您自己的项目,那么我的建议是完全避免将文本文件作为数据库。

在现实世界中,

  • 如果您想将密码存储在数据库中,我建议使用一个好的散列算法(如SHA-512 ( 沙二系列的一部分))对密码进行哈希。另外,如果您决定不让它成为web应用程序,您将在HTTPS这样的安全协议中向应用程序/服务器发送机密信息。
票数 2
EN

Stack Overflow用户

发布于 2010-10-25 21:56:41

对于#2,如果一次只需要了解一个用户,那么将所有用户加载到内存中是没有好处的。我这样做的方法是解析用户名,在文件中找到它,然后检查解析的密码是否与该用户记录的密码匹配。如果是这样的话,创建对象。你应该在每个阶段检查和捕捉错误。提供不适当的用户名,用户不存在,等等)

存储和传输明文密码总是一个坏主意。这可能不是此分配的要求,但是在保存密码之前请考虑一下散列密码。然后,与其查找实际提供的密码文本,不如散列,并将其与保存的哈希进行比较。

票数 1
EN

Stack Overflow用户

发布于 2010-10-25 16:04:21

我建议使用XStream,这是一种非常快速和容易的方法,可以将数据持久化到磁盘。XStream只将POJO转换为XML,并允许编组/解组。XStream的优点是您的数据仍然可以被人类读取,这在您学习编程和调试时是有用的。

在这变成性能瓶颈之前,你需要有大量的数据,因为这是家庭作业,我怀疑你会有那么多。我不知道您知道多少编程,但是添加一个适当的关系数据库会给您的系统增加很多复杂性。我的建议是你在这里一步一步地做。(数据库有充足的时间:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4016211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档