java - 提供数据库密码而不将其硬编码在程序中

标签 java jdbc

我们如何创建一个 JDBC 连接创建逻辑,而不需要每次数据库凭据发生更改时都更改 java 代码?

注意::数据库的用户名和密码将由用户(具有特殊权限)给出...完全权限授予他..

我的意思是, DB 用户名、密码和其他详细信息通常硬编码在 java 程序中。我们可以通过哪些其他方式保留它,以便在更改凭据时无需更改 java 代码? 我们还必须牢记凭证的隐私和安全因素...

最佳答案

  1. 将您的凭据存储在文件 (credentials.properties) 中
  2. 如果您的程序启动则读取该文件

像这样:

Properties   properties = new Properties();
properties .load(new FileInputStream(new File("c:\\credentials.properties")));

String user = properties.getProperty("username");
String pass = properties.getProperty("password");
//...

credentials.properties 的内容如下所示:

#DB properties:
driver   = com.mysql.jdbc.Driver
url      = jdbc:mysql://localhost/mydatabase?useEncoding=true&characterEncoding=UTF-8
username = dit
password = 123456

关于java - 提供数据库密码而不将其硬编码在程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29227180/

相关文章:

java - 最终静态字符串编译问题。任何建议如何避免?

java - 强制 Oracle JDBC 在每个连接上使用代理

android - 由 : java. lang.Exception : No native library is found for os. name=Mac 和 os.arch=aarch64 引起。路径=/org/sqlite/native/Mac/aarch64

mysql - JdbcTemplate,MySQL错误

java - 使用 Eclipse Code Formatter for Java 在 if() 中的条件缩进

java - dateTextField 的初始值 (Apache Wicket)

java - 为什么 HBase 客户端在提交之前放置至少需要添加一列的对象?

java - 使用本地数据库进行java应用程序

java - 如何使用 jTDS 将表值参数传递给存储过程?

java - Java 中 C++ 的 std::bind 是否等效?