【问题标题】:Getting MD5 checksum on the remote server using JSCH使用 JSCH 在远程服务器上获取 MD5 校验和
【发布时间】:2023-12-26 12:04:01
【问题描述】:

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

我正在使用 JSCH 连接到 sftp 服务器,代码在 java 中。但我不知道如何在驻留在 SFTP 服务器中的远程文件上运行 md5。我的代码必须先对远程文件执行 MD5转移发生。请知道如何完成此操作。

【问题讨论】:

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

标签: java md5 sftp jsch


【解决方案1】:

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

$ md5sum /tmp/test
34a27208f62ff3bdae031c9e8a354ac3  /tmp/test

Jsch 网站包含an example,它显示了如何在远程服务器上调用命令。这可以很容易地适应运行md5sum 命令。

【讨论】:

    最近更新 更多