package cn.bidaround.ytcore.util;
import java.security.MessageDigest;
/**
* 长链接转化为短链接类
* @author youtui
* @since 14/6/19
*/
public class CMyEncrypt {
/**16进制字符数组*/
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };
/**
* 获取md5字符串串
* @param inputStr
* @return md5字符串
*/
public static String md5(String inputStr) {
return encodeByMD5(inputStr);
}
/**
* 将字符串进行md5操作
* @param originString
* @return md5字符串
*/
private static String encodeByMD5(String originString) {
if (originString != null) {
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] results = md5.digest(originString.getBytes());
String result = byteArrayToHexString(results);
return result;
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* 将byteArray转化为HexString
* @param b
* @return HexString
*/
private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
/**
* 将byte转化为HexString
* @param b
* @return HexString
*/
private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
/**
* 将长网址转化为短链接
* @param url 长链接
* @return 短链接
*/
public static String shortUrl(String url) {
return md5(url + System.currentTimeMillis()).substring(0, 8);
}
}