面试常见有关问题:怎么加密Web项目中配置文件中的密码
面试常见问题:如何加密Web项目中配置文件中的密码?我们使用的项目经常是这个样子的:driverClassNameoracl
面试常见问题:如何加密Web项目中配置文件中的密码?
我们使用的项目经常是这个样子的:
driverClassName=oracle.jdbc.driver.OracleDriverurl=jdbc:oracle:thin:@127.0.0.1:1523:orcluserName=someOneElseUnknowUserNamepassword=somePwdElseUnknowPassowrd
而实际上,真实的密码却是czw/czw,web程序运行的时候,显示如下的内容:
2013-8-31 13:26:12 org.apache.catalina.core.StandardEngine start信息: Starting Servlet Engine: Apache Tomcat/6.0.182013-8-31 13:26:14 org.apache.catalina.core.ApplicationContext log信息: Initializing Spring root WebApplicationContext==================url:jdbc:oracle:thin:@127.0.0.1:1523:orcl==================password:somePwdElseUnknowPassowrd==================driverClassName:oracle.jdbc.driver.OracleDriver==================userName:someOneElseUnknowUserName2013-8-31 13:26:17 org.apache.catalina.core.ApplicationContext log信息: Initializing Spring FrameworkServlet 'cardDemo'2013-8-31 13:26:18 org.apache.coyote.http11.Http11Protocol start信息: Starting Coyote HTTP/1.1 on http-80802013-8-31 13:26:18 org.apache.jk.common.ChannelSocket init信息: JK: ajp13 listening on /0.0.0.0:8009
但是,在DATASOURCE里面获取到的内容,却是替换之后的正确的用户名和密码。这只是一个非常简单的例子,只是告诉我们一个解决数据库用户名和密码加密的一个渠道,比如,我们可以在PropertyPlaceholderConfigurer子类中写一些比较复杂的逻辑,比如根据jdbc.properties中配置的文件中进行各种手段的加密。在其中通过其他手段替换jdbc.propertes中的用户名和密码等等。
作者 陈字文(热衷于PM\ORACLE\JAVA等,欢迎同行交流)EMAIL:ziwen@163.com QQ:409020100
如果有技术面试官再问到你,怎么隐藏在配置文件中的用户名和密码的时候,希望能够说出这个思路,如果能够提到PropertyPlaceholderConfigurer的子类中的convertProperty方法的话,就更加出彩了。