Java 使用JSCH在远程服务器上获取MD5校验和

Java 使用JSCH在远程服务器上获取MD5校验和,java,md5,sftp,jsch,Java,Md5,Sftp,Jsch,我正在编写一个应用程序,其中要求将文件从远程SFTP服务器传输到本地计算机,反之亦然。在文件传输过程中,我希望确保没有数据包在传输过程中丢失和损坏。因此,我们的想法是在传输之前对远程文件(驻留在sftp服务器中)运行MD5校验和,然后启动传输过程。传输完成后,在本地文件上运行md5并比较两个校验和 我正在使用JSCH连接到sftp服务器,代码是java。但是我不知道如何在驻留在sftp服务器中的远程文件上运行md5。在传输之前,我的代码必须在远程文件上运行md5。请了解如何完成此操作。大多数Un

我正在编写一个应用程序,其中要求将文件从远程SFTP服务器传输到本地计算机,反之亦然。在文件传输过程中,我希望确保没有数据包在传输过程中丢失和损坏。因此,我们的想法是在传输之前对远程文件(驻留在sftp服务器中)运行MD5校验和,然后启动传输过程。传输完成后,在本地文件上运行md5并比较两个校验和


我正在使用JSCH连接到sftp服务器,代码是java。但是我不知道如何在驻留在sftp服务器中的远程文件上运行md5。在传输之前,我的代码必须在远程文件上运行md5。请了解如何完成此操作。

大多数Unix系统都有
md5sum
命令。您可以在远程服务器上调用它来检索散列

$md5sum/tmp/test
34a27208f62ff3bdae031c9e8a354ac3/tmp/测试

Jsch网站包含一个示例,说明如何在远程服务器上调用命令。这很容易适应于运行
md5sum
命令。

SFTP为您处理完整性检查,因此您的任务毫无意义。@EugeneMayevski'EldoSCorp确实如此。只需注意,文件在读/写时可能会损坏,因此在SSH通道之外。不太可能。@MartinPrikryl是的,文件可能在任何地方损坏,这使得问题与SSH/SFTP无关:)当然,但问题是如何通过JSCH获得MD5校验和,这仍然是相关的。例如,SFTP有一个获取校验和的API。不幸的是,可能不是由JSCH或服务器实现的。