package utils;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
/*
* MD5 加密工具类
*
*/
public class DigestUtil {
private static String encodingCharset
= " UTF-8 " ;
/**
* @param aValue
* @param aKey
* @return
*/
byte k_ipad[] = new byte [ 64 ];
byte k_opad[] = new byte [ 64 ];
byte keyb[];
byte value[];
try {
keyb = aKey.getBytes(encodingCharset);
value = aValue.getBytes(encodingCharset);
keyb = aKey.getBytes();
value = aValue.getBytes();
}
Arrays.
fill(k_ipad, keyb.
length,
64 ,
( byte ) 54 );
Arrays.
fill(k_opad, keyb.
length,
64 ,
( byte ) 92 );
for ( int i = 0 ; i < keyb.length; i ++ ) {
k_ipad[i] = ( byte ) (keyb[i] ^ 0x36 );
k_opad[i] = ( byte ) (keyb[i] ^ 0x5c );
}
try {
return null ;
}
md.update(k_ipad);
md.update(value);
byte dg[] = md.digest();
md.reset();
md.update(k_opad);
md.update(dg, 0 , 16 );
dg = md.digest();
return toHex(dg);
}
public static String toHex
( byte input
[]) {
if (input == null )
return null ;
for ( int i = 0 ; i < input.length; i ++ ) {
int current = input[i] & 0xff ;
if (current < 16 )
output.append( " 0 " );
output.
append(Integer.
toString(current,
16 ));
}
return output.toString();
}
/**
*
* @param args
* @param key
* @return
*/
if (args == null || args.length == 0 ) {
return ( null );
}
for ( int i = 0 ; i < args.length; i ++ ) {
str.append(args[i]);
}
return (hmacSign(str.toString(), key));
}
/**
* @param aValue
* @return
*/
aValue = aValue.trim();
byte value[];
try {
value = aValue.getBytes(encodingCharset);
value = aValue.getBytes();
}
try {
e.printStackTrace();
return null ;
}
return toHex(md.digest(value));
}
}