如何在Java 1.6中屏蔽电子邮件地址

时间:2013-12-17 18:22:50

标签: java

我目前正在与开发人员一起担任IT安全工程师。作为PCI合规性的一部分,并且为了确保个人身份信息受到保护,需要在将这些地址写入日志文件之前屏蔽客户端电子邮件地址。 有人能为我提供一些如何实现这一目标的帮助。 我们的开发环境是Java 1.6。我将不胜感激任何帮助,我提前感谢你们。

2 个答案:

答案 0 :(得分:1)

如果您只想记录电子邮件地址,我建议您从用户的电子邮件中生成md5。它不可逆,每封电子邮件应该是唯一的。

请参阅http://download.oracle.com/javase/6/docs/api/java/security/MessageDigest.html

答案 1 :(得分:0)

假设你正在使用Log4J(你已经表明过你),你可以编写自己的Layout

您可以扩展说PatternLayout,委托超类来完成繁重的工作,然后在响应中屏蔽电子邮件。

/**
 * Mask email addresses in logging lines.
 */
public class MaskingLayout extends PatternLayout {
    private static Pattern EMAIL = Pattern.compile("([^.@\\s]+)(\\.[^.@\\s]+)*@([^.@\\s]+\\.)+([^.@\\s]+)");

    @Override
    public String format(LoggingEvent event) {
        Matcher matcher = EMAIL.matcher(super.format(event));
        return matcher.replaceAll("xxx@xxx.xxx");
    }

}