文件转换为字节数组后的MD5校验和

时间:2013-12-10 09:56:56

标签: java file hash base64 jax-ws

这是我的问题:我想获取一个文件并通过Web服务以Base64格式发送它。该Web服务还要求我获取文件的MD5校验和,并将其与文件一起发送。这样,它可以控制我是否正确发送文件。

我会得到文件的哈希值。直到它没事。 (我查看源代码和不同的MD5校验客户端工具)然后,当我将其转换为Base64并在那里发送时,另一方立即告诉我Hash是错误的。由于我正在与国家办公室打交道,因此无法迅速得到我的电话回复。我想知道在转换为Base64时哈希是否被破坏了。如果我这样做,你能控制代码吗?

非常感谢提前;

public static Base64Binary MakeBinary(String filePath) {

    Base64Binary b64binary = new Base64Binary();
    b64binary.setContentType("application/x-zip-compressed");

    try {
        File file = new File(filePath);
        FileInputStream fis = new FileInputStream(file);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        byte[] buf = new byte[1024];
        try {
            for (int readNum; (readNum = fis.read(buf)) != -1;) {
                bos.write(buf, 0, readNum); //no doubt here is 0
                //Writes len bytes from the specified byte array starting at offset off to this byte array output stream.
                System.out.println("read " + readNum + " bytes,");
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        byte[] bytes = bos.toByteArray();
        b64binary.setValue(bytes);
    } catch (Exception e) {
        e.printStackTrace();
    }

    return b64binary;

}

1 个答案:

答案 0 :(得分:0)

好的我与那些负责Web服务的人一起检查..这段代码没有任何问题。供您参考。非常感谢读者。