【问题标题】:How can I encrypt password in log4j.properties?如何在 log4j.properties 中加密密码?
【发布时间】:2014-05-16 14:48:39
【问题描述】:

有什么方法可以在 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 标签?

谢谢大家。

【问题讨论】:

  • 你应该把加密密码放在log4j文件上,而不是做加密操作。
  • 如何使用加密密码连接到数据库?我如何指定我正在使用加密密码的数据库?你能举个例子解释一下吗?

标签: java jsp logging log4j audit-logging


【解决方案1】:

谢天谢地,终于找到了将加密密码保存在 Log4j.properties 中的解决方案

我们要做的就是,

复制JDBCAppender 类的log4j.jar。

修改定义

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

JDBCAppender

根据你的需要并替换log4j.jar中的那个类。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 2013-04-15
      相关资源
      最近更新 更多