计算字节数组的SHA-1

问题描述:

我正在寻找一种方法来获取带有Java字节数组的SHA-1校验和作为消息。

I'm looking for a way of getting an SHA-1 checksum with a Java byte array as the message.

我应该使用第三方工具还是有什么内置的JVM可以提供帮助吗?

Should I use a third party tool or is there something built in to the JVM that can help?

怎么样:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Formatter;

public static String SHAsum(byte[] convertme) throws NoSuchAlgorithmException{
    MessageDigest md = MessageDigest.getInstance("SHA-1"); 
    return byteArray2Hex(md.digest(convertme));
}

private static String byteArray2Hex(final byte[] hash) {
    Formatter formatter = new Formatter();
    for (byte b : hash) {
        formatter.format("%02x", b);
    }
    return formatter.toString();
}