7

有什么方法可以在 log4j.properties 中加密密码

以下是我的附加程序

log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DB.URL=jdbc:mysql://localhost:3306/anilpractice
log4j.appender.DB.driver=com.mysql.jdbc.Driver
log4j.appender.DB.user=root
log4j.appender.DB.password=P@ssw0rd
log4j.appender.DB.sql=INSERT INTO logs VALUES('%x','%d{dd MMM yyyy HH:mm:ss}','%C','%p','%m')
log4j.appender.DB.layout=org.apache.log4j.PatternLayout

请帮助我如何加密 .password 标签?

谢谢你们。

4

2 回答 2

2

感谢上帝,终于找到了一些解决方案,将加密密码保存在 Log4j.properties

我们所要做的就是,

复制JDBCAppenderlog4j.jar 类。

修改定义

public void setPassword(String password)
  {
          this.databasePassword = password;
  }

JDBCAppender

根据您的需要并替换 log4j.jar 中的该类。

于 2014-04-08T12:48:52.547 回答
2

我不认为这是可能的。即使有可能,请考虑以下事项:

如果您仅通过提供“加密密码”就可以建立连接,那就像密码未加密一样,因为复制加密密码的每个人都可以连接并破坏您的数据库。唯一不同的是,密码以不同的方式呈现,可能不太可读,但仍然非常有用。即使您在代码中实现了密码的对称解密,如果攻击者可以访问包含加密密码的配置文件,他很可能也可以访问在同一台机器上运行的包含解密算法的代码,并且将能够反编译和读取算法。

更好地创建一个具有受限访问权限的 DB-User,只写入日志表。这样,被盗的密码不会对您的数据库造成太大损害。

于 2014-04-04T12:11:33.423 回答