在我的Hibernate 5.2.11构建应用程序中,有许多带有用户名,密码和连接URL的hibernate配置文件。 我想加密这些数据。
我的配置文件是这样的:
__str__()
有什么建议吗?
答案 0 :(得分:0)
使用属性占位符,然后将数据库配置添加到服务器上的属性文件中:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>file:${configDir}/database.properties</value>
</property>
</bean>
然后
<property name="connection.url">${url}</property>
<property name="connection.username">${username}</property>
<property name="connection.password">${passowrd}</property>
然后安全地在服务器上的database.properties将是
url=jdbc:oracle:localhost
usuername=username
password=passowrd123
然后,当您启动Java应用程序时,添加一个系统参数来定义configDir位置,例如:
.... -DconfigDir=/opt/config
参见示例here
答案 1 :(得分:0)
通常 - 加密/隐藏客户端(工作站/移动/ ...)上的任何内容,您可以将其视为混淆或编码。
理论上 - 您可以以编程方式设置Hibernate属性(请参阅Setting properties programmatically in Hibernate)从加密文件中读取数据。
问题是 - 你把加密密钥放在哪里?无论如何,必须在某个地方为应用程序提供密钥。