我正在开发一个项目,该项目必须访问MySQL数据库用户名和密码才能读取和更新用户数据库。
最初我直接将数据库的用户名和密码写入我的代码。 但是我的老师让我创建一个提示框,它会在程序的第一次运行时使用用户名和密码,而不是再次。 因此,如果这样做,我将无法在下次访问数据库。
我想将该用户名和密码存储到本地文本文件中。
这是个好主意。 或者有什么好方法可以做这种工作?
答案 0 :(得分:2)
您可以将信息存储在属性文件(https://docs.oracle.com/javase/tutorial/essential/environment/properties.html)中,但应使用加密。请参阅:How to encrypt String in Java
答案 1 :(得分:1)
在您的情况下,最好的方法是存储在.properties
文件中。
获得用户输入后=>存储到属性文件。
此外,在DB中存储密码的良好做法是使用 单向哈希 。各种哈希方法都适用于此:MD5
,SHA-256
等。
但是,它仅适用于单向。更多信息 - MD5 algorithm Decryption in java。
在您的情况下,属性文件应该足够了
db.properties
的示例:
db.username=MyUser
db.password=MyPassword
您可以拥有连接的默认值。如果用户输入与之匹配,则只需打印一条警告消息,例如:"数据库用户名或密码不正确。再试一次。"
您可以使用JOptionPane
之类的内容向用户询问:
public void start() throws CreateDocumentConfigurationException {
// Custom button text
Object[] options = {"Yes, please", "Use default instead"};
int n = JOptionPane.showOptionDialog(null,
"Would you like to enter DB credentials?",
"DB Question", JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE, null, options, options[1]);
estimateUserInput(n); // process result here. 0 - for entering new one, 1 - for using default
}
答案 2 :(得分:0)
您可以将数据库登录信息存储在配置文件中。
对于桌面应用程序, .properties文件可以使用
对于基于Web的应用程序, 将密码存储在Apache Tomcat服务器的context.xml中。