我在Spring框架中非常新,我使用Spring框架來管理我的數據庫連接等等。應用程序從屬性文件中讀取我的db連接參數。我需要的是將我的連接密碼存儲在屬性文件中加密。 這裏是我的數據源XML文件如何在Spring中的屬性文件中存儲加密的密碼
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>file:${DBConfigFile}</value>
</property>
</bean>
<bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialPoolSize"><value>3</value></property>
<property name="minPoolSize"><value>3</value></property>
<property name="maxPoolSize"><value>50</value></property>
<property name="idleConnectionTestPeriod"><value>200</value></property>
<property name="acquireIncrement"><value>1</value></property>
<property name="maxStatements"><value>0</value></property>
<property name="numHelperThreads"><value>3</value></property>
</bean>
</beans>
我thiking寫加密屬性文件中的密碼,我想知道如果春天可以用一種算法自動解密。配置是否可行? 預先感謝您。
你是正確的,但我提到關於Spring的私有算法,不是公共的。感謝您的回答,我將搜索關於ssl認證。 – tace 2012-07-25 08:51:20
@tace私有算法的安全性是矛盾的。 http://en.wikipedia.org/wiki/Security_through_obscurity。所以,正確的做法之一是使用操作系統保護(Windows NTLM,Unix pam等),它可以提供一些保護。 – kan 2012-07-25 08:57:23
使用屬性中的加密憑據,您可以將它們的版本控制(顯然不與私鑰一起使用)與需要它們的服務一起保存,並在部署服務時自動部署。在部署管道之外需要維護的唯一東西是用於解密屬性的私鑰,與將整個配置保持在服務的正常生命週期之外的情況相比,這應該不太容易出錯。 – 2015-04-20 05:36:54