java - 如何从Java连接到MySQL而不将密码存储为明文

标签 java mysql jdbc keystore

我一直在网上阅读各种有关如何最好地存储此类目的密码的文章。到目前为止,我最接近的方法是将密码添加到通过命令提示符创建的 keystore 文件中。通过这种方法,我所能做的就是访问 SecretKey 对象

SecretKeyEntry entry = (KeyStore.SecretKeyEntry)ks.getEntry("vault",new KeyStore.PasswordProtection(password));
            SecretKey someKey = entry.getSecretKey();
            System.out.println(someKey.getEncoded());

这可行,但要访问 SecretKeyEntry,我必须将 keystore 的密码作为明文字符串传递并调用 toCharArray 方法。另外,从这里我如何才能真正使用该值来连接到 MySQL。

最佳答案

如果您要将应用程序部署到应用程序服务器 (Weblogic/tomcat),您可以使用数据库所需的凭据在服务器上创建数据源。 在您的应用程序中,您只需提及数据源的名称即可通过数据源进行连接。

关于java - 如何从Java连接到MySQL而不将密码存储为明文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43010842/

相关文章:

java - 水平填充但垂直滚动

java - 查找或初始化解决 "hostname in certificate didn' t 匹配所需的 keystore ”

php - 类型 : ArgumentCountError Message: Too few arguments to function

php - 在表中经常将一列空为 NULL 是不是很糟糕?

spring - 为什么 App Engine 无法使用我的 Spring Boot 应用程序连接到 Cloud SQL?

java - 如何使用 XMLEventReader 解析来自 XML 的注释?

Java 泛型类型删除 : when and what happens?

c# - 从 C# 访问 phpsoapservice

java - JDBC 和 PostgreSQL 不工作的 OFFSET N FETCH FIRST M ROWS

java - HSQL 中 Oracle 的 empty_clob()