我需要计算一个 csv 文件的校验和。每次更改文件中的数据时,校验和都会更改。在这方面,我在互联网上没有发现任何有用的东西。
问问题
2503 次
1 回答
2
首先,这个问题并不是 JSP 特有的。JSP 只是一个 HTML 代码生成器。在 JSP 文件中而不是在普通的 Java 类中编写 Java 代码不会使其成为 JSP 问题。如果您专注于使用“Java”关键字而不是“JSP”关键字来解决未来的 Java 问题,那么您将获得更多帮助。
就是说,您可以使用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();
于 2012-05-29T16:15:46.620 回答