package egovframework.rte.fdl.cryptography.impl; import org.apache.log4j.Logger; import org.jasypt.digest.StandardByteDigester; import egovframework.rte.fdl.cryptography.EgovDigestService; public class EgovDigestServiceImpl implements EgovDigestService { private Logger logger = Logger.getLogger(this.getClass()); // Logger 처리 private String algorithm = "SHA-256"; // default private boolean plainDigest = false; // default private int strongIterations = 1000; // default private int strongSaltSizeBytes = 8; // default public void setAlgorithm(String algorithm) { this.algorithm = algorithm; } public String getAlgorithm() { return algorithm; } public void setPlainDigest(boolean plainDigest) { this.plainDigest = plainDigest; } public boolean isPlainDigest() { return plainDigest; } public byte[] digest(byte[] data) { StandardByteDigester digester = new StandardByteDigester(); digester.setAlgorithm(algorithm); logger.debug("Digest's algorithm : " + algorithm); if (plainDigest) { digester.setIterations(1); digester.setSaltSizeBytes(0); } else { digester.setIterations(strongIterations); digester.setSaltSizeBytes(strongSaltSizeBytes); } return digester.digest(data); } public boolean matches(byte[] messageByte, byte[] digestByte) { StandardByteDigester digester = new StandardByteDigester(); digester.setAlgorithm(algorithm); logger.debug("Digest's algorithm : " + algorithm); if (plainDigest) { digester.setIterations(1); digester.setSaltSizeBytes(0); } else { digester.setIterations(strongIterations); digester.setSaltSizeBytes(strongSaltSizeBytes); } return digester.matches(messageByte, digestByte); } }