Java 检查通过SFTP下载的字节数组是否未损坏

Java 检查通过SFTP下载的字节数组是否未损坏,java,bytearray,sftp,apache-commons,Java,Bytearray,Sftp,Apache Commons,我有一个java类用于从SFTP服务器下载语音记录。我使用ApacheCommonsAPI来实现这一点。这些步骤应该是: 将录制下载到字节数组(字节[]) 验证下载的录音是否完整、正确且未以任何方式损坏(我的意思是与服务器上的录音相比,如果它在服务器上损坏,则我不在乎-我只需要它保持不变) 从服务器上删除录制 我如何做第2步以尽可能确定(可能100%不可能,我不知道)?到目前为止,我只是检查字节[]是否为空,但这是非常弱的。我查看了一些校验和,但除了通过java应用程序中的SFTP之外,我没有任

我有一个java类用于从SFTP服务器下载语音记录。我使用ApacheCommonsAPI来实现这一点。这些步骤应该是:

  • 将录制下载到字节数组(字节[])
  • 验证下载的录音是否完整、正确且未以任何方式损坏(我的意思是与服务器上的录音相比,如果它在服务器上损坏,则我不在乎-我只需要它保持不变)
  • 从服务器上删除录制

  • 我如何做第2步以尽可能确定(可能100%不可能,我不知道)?到目前为止,我只是检查字节[]是否为空,但这是非常弱的。我查看了一些校验和,但除了通过java应用程序中的SFTP之外,我没有任何其他访问服务器的权限,因此我无法在服务器上进行校验和。。。谢谢你的帮助

    声音格式是什么?(wav、mp3等)@Andrei:声音格式始终是mp3如果你想真正确定文件的完整性,有一个工具MP3Val可以检查文件。您可以使用
    Runtime.exec()
    在命令行中运行它,或者阅读源代码,看看它是如何完成的,也许您会有一些想法。SFTP是一种二进制协议,它在SSH上运行,包括完整性检查。因此,除非您使用的SFTP客户端有缺陷,否则文件不会被破坏。如果您有文件损坏,您需要搜索bug,而不是在代码中构建损坏检测。@Wolf这是正确的。另见