package net.tooan.ynpay.commons.helper;
import net.tooan.ynpay.third.jfinal.log.Logger;
import org.apache.commons.lang.StringUtils;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* Created with IntelliJ IDEA.
* User: Jing
* Date: 13-10-19
* Time: 上午10:45
*/
public class Encrypt {
private static Logger logger = Logger.getLogger(Encrypt.class);
private final static String HASH_MD5 = "md5";
private final static String HASH_SHA1 = "sha-1";
private static Encrypt instance = new Encrypt();
public static String md5(String input) {
return instance.encrypt(input, HASH_MD5);
}
public static String sha1(String input) {
return instance.encrypt(input, HASH_SHA1);
}
private String encrypt(String input, String hashName) {
String output = StringUtils.EMPTY;
try {
MessageDigest messageDigest = MessageDigest.getInstance(hashName);
messageDigest.update(input.getBytes("UTF-8"));
byte[] bytes = messageDigest.digest();
output = hex(bytes);
} catch (NoSuchAlgorithmException e) {
if (logger.isErrorEnabled()) {
logger.error(e.getMessage(), e);
}
} catch (UnsupportedEncodingException e) {
if (logger.isErrorEnabled()) {
logger.error(e.getMessage(), e);
}
}
return output;
}
private String hex(byte[] bytes) {
StringBuilder stringBuilder = new StringBuilder();
for (byte aByte : bytes) {
stringBuilder.append(Integer.toHexString((aByte & 0xFF) | 0x100).substring(1, 3));
}
return stringBuilder.toString();
}
}