正如标题所说,当我通过服务器(运行 Ubuntu 20.04)上的 FTP 上传文件(在我的情况下是加密的 jar)并尝试下载它时,jar 的某些字节似乎发生了更改(相对 sha 校验和也是如此)。
有人知道为什么会发生这种情况以及如何“解决”?
原始文件详细信息:
下载文件详情:
原始文件字节数:
下载的文件字节数:
更新:显然,只有当我上传带有 jar 扩展名的文件时才会发生这种情况。我尝试将文件从“Test_original.jar”重命名为“Test_original”(不带扩展名)并上传,sha256 与桌面上的文件相同。
更新第 2 部分:显然服务器上的副本与原始副本匹配,所以我假设在下载请求到来时下载/服务器处理文件期间出现了问题(?)
答案1
最有可能的是,您在此过程中使用了 Windows 机器,但忘记使用 FTPbinary
选项。
由于 Windows 使用的行尾 ( \r\n
) 与世界其他地方不同,因此默认将\n
不以 a 为前缀的所有行\r
转换为\r\n
。 这对于文本文件意义不大,但对二进制文件却有破坏性。
如何避免这种情况取决于您使用的 FTP 客户端:对于命令行客户端,只需binary
在登录后输入,对于 GUI 客户端,搜索相应的配置设置。