【发布时间】:2015-07-25 21:36:35
【问题描述】:
我创建了使用数据库连接的可执行 jar 应用程序。问题是我的 hibernate.cfg 文件包含在源代码中,任何人都可以轻松获得 DB 的用户名和密码。
如何避免这种情况?使其不可读或以某种方式将其放在其他人无法阅读的地方。
【问题讨论】:
-
使用加密密码
标签: java hibernate executable-jar
我创建了使用数据库连接的可执行 jar 应用程序。问题是我的 hibernate.cfg 文件包含在源代码中,任何人都可以轻松获得 DB 的用户名和密码。
如何避免这种情况?使其不可读或以某种方式将其放在其他人无法阅读的地方。
【问题讨论】:
标签: java hibernate executable-jar
纯文本密码通常可以在适当保护的机器上使用;如果想要做坏事的人拥有机器的管理员权限,他们很容易在不知道数据库密码的情况下做坏事。除非您有恶意管理员,否则无需担心,但如果您拥有其中一个管理员,那么任何人都无能为力。您可以使用加密密码,但我会优先保护服务器本身,而不是担心配置文件中的密码。
您可以检查http://www.jasypt.org/是否加密
【讨论】:
您可以使用 Jasypt:Java 简化的加密 API 来加密您的用户名和密码,它是一个简单的 API。
休眠.cfg。配置
<property name="hibernate.connection.provider_class">org.jasypt.hibernate3.connectionprovider.EncryptedPasswordC3P0ConnectionProvider</property>
您需要使用此 API 来加密您的密码并在休眠配置中提供该密码。
<property name="connection.encryptor_registered_name">standardPBEStringEncryptor</property>
<property name="connection.password">ENC(QVvFsdfefwewEz3i+0EwsxWenjtrjtrjweftUYpMs)</property>
【讨论】: