2009年6月5日

Java md5sum


import java.io.File;
import java.io.FileInputStream;
import java.math.BigInteger;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;

public class Md5sum {
public static void main(String[] args) throws Exception {
File file = new File(args[0]);
MessageDigest md = MessageDigest.getInstance("md5");
ByteBuffer buff = ByteBuffer.allocate(1024);
FileInputStream in = new FileInputStream(file);
try {
FileChannel fcin = in.getChannel();
while (fcin.read(buff) != -1) {
buff.flip();
md.update(buff);
buff.clear();
}
fcin.close();
} finally {
in.close();
}

byte[] digest = md.digest();
BigInteger bi = new BigInteger(1, digest);
System.out.printf("%0" + (digest.length << 1) + "x %s", bi, file);
}
}

沒有留言:

網誌存檔