一尘不染

如何在JSP中为CSV文件生成md5校验和

jsp

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


阅读 254

收藏
2020-06-08

共1个答案

一尘不染

首先,此问题不是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();
2020-06-08