如何在SFTP文件传输期间执行校验和以确保数据完整性?

时间:2015-05-05 15:00:19

标签: sftp checksum data-integrity

我需要为SFTP执行校验和(用于数据完整性)。我希望这可以在SFTP文件传输期间完成 - 我意识到这可能是产品依赖的(仅供参考:使用CLEO VLTrader),但是想知道这是否习惯?

我也在寻找与使用校验和算法一样好(或更好)的替代数据完整性检查选项。谢谢!

1 个答案:

答案 0 :(得分:11)

使用SFTP运行加密的SSH会话,传输时文件内容可能会被破坏的可能性很小。因此,除非它被破坏,否则在读取本地文件或编写远程文件时,如果没有报告错误,您可以非常确定文件是否已正确上载。

如果你想要明确测试:

虽然SFTP协议的check-file extension用于计算远程文件校验和,但它并未得到广泛支持。特别是最广泛的SFTP服务器实现OpenSSH不支持它。请参阅What SFTP server implementations support check-file extension

也没有多少客户端/客户端库支持它。 您没有指定您使用的客户端/库,因此我无法提供更多详细信息。

除此之外,您唯一的选择是将文件下载(如果上传)并在本地进行比较。

如果您具有对服务器的shell访问权限,您当然可以尝试通过单独的shell / SSH连接(或者#34; exec"来运行)运行一些shell校验和命令(例如sha256sum)。通道)并解析结果。但那不再是SFTP解决方案了。