Chào các anh chị diễn đàn, hiện tại em đang tìm hiểu về hàm băm SHA-1, em có tham khảo một đoạn code sau nhưng không hiểu lắm ạ, em có search google nhưng vẫn không tìm được câu trả lời, mong anh chị giúp đỡ giải thích giúp em phương thức này, và tại sao ở đây họ lại dùng kiểu dữ liệu Byte ạ, em cảm ơn nhiều.
public BigInteger md(String f) throws Exception {
BufferedInputStream file = new BufferedInputStream(new FileInputStream(f));
MessageDigest md = MessageDigest.getInstance("SHA-1");
DigestInputStream in = new DigestInputStream(file, md);
int i;
byte[] buffer = new byte[BUFFER_SIZE];
System.out.println(buffer.length);
do {
i = in.read(buffer, 0, BUFFER_SIZE);
System.out.println(i + " ");
} while (i == BUFFER_SIZE);
md = in.getMessageDigest();
in.close();
return new BigInteger(md.digest());
}