小编MJa*_*Jar的帖子

如何将MessageDigest内部状态保存到数据库中?

保存MessageDigest对象的内部状态是否可能,如果可行?我想将它保存在数据库中,所以必须使用唯一的原始数据,如String,int,byte[].

我想要实现的是能够接收一个碎片文件(在很长一段时间内),保存数据库中的所有片段,并在收到最后一个片段后验证文件的SHA512摘要而不取回所有数据以前保存在数据库中.

所以基本上我想要这样的东西:

MessageDigest md = MessageDigest.getInstance("SHA-512");
// restore previous internal state of md
md.update(dataSegment);
// save internal md state
Run Code Online (Sandbox Code Playgroud)

java hash sha512

6
推荐指数
1
解决办法
636
查看次数

Apache POI - 读取修改excel文件

每当我使用Apatche POI打开excel文件时,文件都会被修改,即使我只是在阅读文件而没有进行任何修改.

以此类测试代码为例.

public class ApachePoiTest {

    @Test
    public void readingShouldNotModifyFile() throws Exception {
        final File testFile = new File("C:/work/src/test/resources/Book2.xlsx");
        final byte[] originalChecksum = calculateChecksum(testFile);
        Assert.assertTrue("Calculating checksum modified file",
            MessageDigest.isEqual(originalChecksum, calculateChecksum(testFile)));
        try (Workbook wb = WorkbookFactory.create(testFile)) {
            Assert.assertNotNull("Reading file with Apache POI", wb);
        }
        Assert.assertTrue("Reading file with Apache POI modified file",
            MessageDigest.isEqual(originalChecksum, calculateChecksum(testFile)));
    }

    @Test
    public void readingInputStreamShouldNotModifyFile() throws Exception {
        final File testFile = new File("C:/work/src/test/resources/Book2.xlsx");
        final byte[] originalChecksum = calculateChecksum(testFile);
        Assert.assertTrue("Calculating checksum modified file",
            MessageDigest.isEqual(originalChecksum, calculateChecksum(testFile)));
        try (InputStream …
Run Code Online (Sandbox Code Playgroud)

java apache-poi

4
推荐指数
1
解决办法
661
查看次数

标签 统计

java ×2

apache-poi ×1

hash ×1

sha512 ×1