1和spring集成
项目里用jaspyt加密配置文件
jdbc.jdbcUrl=ENC(ArpbERYHS8RIwj+Fzzv5gjgG8fv7XVZ0sWjKTesxtj9zfq4og60WOOdT8TN9mTfR) jdbc.user=ENC(q6JdHTd3GBiu7e5Rlw5Bf7xq/fuw2wr4) jdbc.password=ENC(sQcoqbJ3XoYLai8Mmox+wVJx3EwjzIDV) jdbc.driverClass=ENC(zyoA7GhJiAmu+hcyUhXNQ6x/b7wxq4+EAu8HtEegmwrXQu5c0F7xlA\=\=)
这个是使用jaspye加密后的配置文件,加密时使用了加密的密匙。
在使用eclipse开发的时候,可以设置密匙在工具里面。在debug configuations里面,有个环境变量。
和spring集成。
<bean id="environmentVariablesConfiguration" class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig"> <property name="algorithm" value="PBEWithMD5AndDES" /> <property name="passwordEnvName" value="APP_ENCRYPTION_PASSWORD" /> </bean> <bean id="configurationEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor"> <property name="config" ref="environmentVariablesConfiguration" /> </bean>
在容器启动的时候,spring会自动去找名为
APP_ENCRYPTION_PASSWORD
的环境变量的值,由此解密
2单独的java agent使用,首先是使用jaspyt生成一个properties
jdbc.jdbcUrl=ENC(p2Bv9IkUR/gwL/4SztpovQ\=\=) jdbc.user=ENC(vqtiKD4TKYb5NvkmJ4JBlg\=\=) jdbc.password=ENC(o3828nhMYbmzmbRQSCW5KA\=\=) jdbc.driverClass=ENC(Zn2oI0UuF0uWvpey+07emA\=\=)
java核心代码
public Properties getProperties(StandardPBEStringEncryptor encryptor) throws IOException { InputStream in = this.getClass().getClassLoader().getResourceAsStream( "system.properties"); Properties p =new EncryptableProperties(encryptor); p.load(in); return p; }
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); encryptor.setPassword("123"); Properties p = new ReadProperties().getProperties(encryptor); String pass = p.getProperty("jdbc.password"); System.out.println(pass);