0

我需要计算一个 csv 文件的校验和。每次更改文件中的数据时,校验和都会更改。在这方面,我在互联网上没有发现任何有用的东西。

4

1 回答 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 回答