gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 13:38:33 61 4
gpt4 key购买 nike

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

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

最佳答案

使用 SFTP,通过加密的 SSH session 运行,文件内容在传输时损坏的可能性可以忽略不计。 SSH 本身进行数据完整性验证。
因此,除非内容损坏,否则在读取本地文件或写入远程文件时,如果没有报告错误,您可以非常确定文件已正确上传。这意味着数据损坏的风险与您在两个本地驱动器之间复制文件的风险大致相同。
如果您认为在将文件从一个本地驱动器复制到另一个驱动器后不需要验证数据完整性,那么我认为您不需要在 SFTP 传输后验证完整性,反之亦然。

如果你想明确地测试:
虽然有 check-file extension到 SFTP 协议(protocol)来计算远程文件校验和,它没有被广泛支持。特别是最广泛的 SFTP 服务器实现 OpenSSH 不支持它。见 What SFTP server implementations support check-file extension .
也没有多少客户端/客户端库支持它。您没有指定您正在使用的客户端/库,因此我无法提供更多详细信息。
有关某些实现的详细信息,请参见:

  • python Paramiko :How to check if Paramiko successfully uploaded a file to an SFTP server?
  • .NET WinSCP:Verify checksum of a remote file against a local file over SFTP/FTP protocol
  • What SFTP server implementations support check-file extension

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

    如果您对服务器有 shell 访问权限,您当然可以尝试通过单独的 shell/SSH 连接(或“exec” channel )运行一些 shell 校验和命令(例如 sha256sum)并解析结果。但这不再是 SFTP 解决方案。
    例子:
  • Calculate hash of file with Renci SSH.NET in VB.NET
  • Comparing MD5 of downloaded files against files on an SFTP server in Python
  • 关于sftp - 如何在 SFTP 文件传输期间执行校验和以确保数据完整性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30056566/

    61 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com