你好,我想知道如何在Java中安全地连接到MySQL。唯一的问题是如何避免密码以纯文本形式出现!非常感谢您的帮助。
使用 JDBC 进行数据库连接。就如
保护密码不被以明文形式存储。
如果密码以明文形式存在,你将如何连接它?我建议只使用生成的128位密码,并加密 那个 密码。也许可以有一个属性文件,你的程序从中加载,该文件不是项目的一部分,然后从那里获取密码?
另一种选择是仅使用SSH身份验证,完全绕过密码。
请查看MessageDigest类的文档:
此MessageDigest类为应用程序提供消息摘要算法(如MD5或SHA)的功能。 消息摘要是安全的单向哈希函数,可以采用任意大小的数据,并输出固定长度的哈希值。
调用getInstance("MD5")
以获取您可以使用的MD5消息摘要。
嗯,这并不是很难。只需下载MYSQL Connector,将其添加到您的路径中,然后在其上启动一个PreparedStatement,如下所示:
Class.forName("com.mysql.jdbc.Driver");
Connection connect = DriverManager
.getConnection("jdbc:mysql://localhost/dbname?"
+ "user=myusername&password=mypassword");
PreparedStatement preparedStatement = connect
.prepareStatement("select * from employees");
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
//display text
}
preparedStatement.close();
connect.close();
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html http://docs.oracle.com/javase/6/docs/api/java/sql/ResultSet.html
现在,您可以使用哈希策略来哈希即掩盖您的密码。您可以将此代码放在另一个包中,以便您当前的代码链接到该值。