jasypt 加密

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);
 

你可能感兴趣的:(eclipse,spring,bean,jdbc)