我正在尝试加密 J2EE 应用程序中的所有纯文本 key 和密码。 我正在尝试找出最好的方法。
我知道 JASYPT 有一个非常好的库和实用程序来加密属性文件,但在 persistence.xml 中似乎不起作用,它包含所有数据库用户名和密码。
以下是开发堆栈:
- Spring MVC
- Spring
- Spring DATA JPA
- hibernate
- MYSQL 和 POSTGRESS 数据库
最佳答案
Jasypt本身对于上述问题有很好的解决方案。
通过使用 org.jasypt.properties.EncryptableProperties 对象,应用程序将能够正确读取和使用 .properties 文件,如下所示:
datasource.driver=com.mysql.jdbc.Driver
datasource.url=jdbc:mysql://localhost/reportsdb
datasource.username=reportsUser
datasource.password=ENC(G6N718UuyPE5bHyWKyuLQSm02auQPUtm)
请注意,数据库密码已加密(事实上,任何其他属性也可以加密,无论是否与数据库配置相关)。
更多信息:
http://www.jasypt.org/encrypting-configuration.html
http://appfuse.org/display/APF/Database+Encryption+with+Jasypt-Hibernate
关于java - 加密属性文件和持久性 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23375989/