protected static MessageDigest messagedigest =
null;
protected static char hexDigits[]={
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f'};
static {
try {
messagedigest = MessageDigest.getInstance(
"MD5");
}
catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
public static String
getFileMD5StringByUrl(String urlStr)
throws IOException {
URL url=
new URL(urlStr);
return getFileMD5String(url.openStream());
}
public static String
getFileMD5String(InputStream fis)
throws IOException {
byte[] buffer =
new byte[
1024];
int numRead =
0;
while ((numRead = fis.read(buffer)) >
0) {
messagedigest.update(buffer,
0, numRead);
}
if(fis!=
null){
fis.close();
}
return bufferToHex(messagedigest.digest());
}
private static String
bufferToHex(
byte bytes[]) {
return bufferToHex(bytes,
0, bytes.length);
}
private static String
bufferToHex(
byte bytes[],
int m,
int n) {
StringBuffer stringbuffer =
new StringBuffer(
2 * n);
int k = m + n;
for (
int l = m; l < k; l++) {
appendHexPair(bytes[l], stringbuffer);
}
return stringbuffer.toString();
}
private static void appendHexPair(
byte bt, StringBuffer stringbuffer) {
char c0 = hexDigits[(bt &
0xf0) >>
4];
char c1 = hexDigits[bt &
0xf];
stringbuffer.append(c0);
stringbuffer.append(c1);
}
public static void main(String[] args) {
String urlStr=
"http://shiliu.s.wcsapi.biz.matocloud.com/gift/chaopao1.gif";
String str;
try {
str = getFileMD5StringByUrl(urlStr);
System.out.println(str);
}
catch (IOException e) {
e.printStackTrace();
}
}
转载请注明原文地址: https://ju.6miu.com/read-1311716.html