我需要计算一个csv文件的校验和。每次文件中的数据更改时,校验和都会更改。在这方面,我发现互联网上没有任何有用的东西。
首先,此问题不是JSP特有的。JSP只是HTML代码生成器。用JSP文件而不是普通的Java类编写Java代码不会使它成为JSP问题。如果您专注于使用“ Java”关键字而不是“ JSP”关键字来解决将来的Java问题,那么您会有所帮助。
也就是说,您可以使用MessageDigest从文件读取的字节进行更新。
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();