我需要计算csv文件的校验和。每次更改文件中的数据时,校验和都会更改。在这方面我没有发现互联网上有用的东西。
答案 0 :(得分:2)
首先,这个问题并非特定于JSP。 JSP只是一个HTML代码生成器。在JSP文件而不是普通的Java类中编写Java代码并不会使它成为JSP问题。如果您专注于使用“Java”关键字解决未来的Java问题,而不是使用“JSP”关键字,那么您将更加自豪。
说,您可以使用从文件中读取的字节更新MessageDigest
。
FileInputStream input = new FileInputStream("/path/to/file.csv");
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] buffer = new byte[10240];
for (int length = 0; (length = input.read(buffer)) > 0;) {
md5.update(buffer, 0, length);
}
byte[] hash = digest.digest();
您可能希望之后将哈希转换为十六进制。
StringBuilder hex = new StringBuilder(hash.length * 2);
for (byte b : hash) {
if ((b & 0xff) < 0x10) {
hex.append("0");
}
hex.append(Integer.toHexString(b & 0xff));
}
String hexString = hex.toString();