文件内容正在修改通过ftp发送

我使用opensslencryption我的备份,然后将其发送到我存储它们的ftp服务器。

起初,当我试图解密文件,我得到这个错误:

openssl rsautl -decrypt -inkey ../key.server.pem -in enc.key.txt -out key.txt RSA operation error 139759177856680:error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block type is not 02:rsa_pk1.c:190: 139759177856680:error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check failed:rsa_eay.c:616: 

我正在按照这个步骤进行encryption 。

我认为问题是encryption,但检查文件的md5sum显示服务器上的文件已经改变了我从FTP服务器下载的文件。 一个例子:

我有一个名为enc.key.txt的文件,其中包含密码来解密备份:

 $ hexdump enc.key.txt //... //... 0000100 16e3 c2e3 cecd 2afe eb8c 9617 8d58 *0dd0* //... 

一旦下载到我的电脑enc.key.txt hexdump相差一个值,在这一行:

 //... 0000100 16e3 c2e3 cecd 2afe eb8c 9617 8d58 *0ad0* //... 

我用hex编辑器编辑了这个值,然后我就可以解密这个文件,但是我不知道为什么要修改这个文件。

我正在使用ncftp将备份发送到ftp服务器,如下所示:

 ### Dump backup using FTP ### #Start FTP backup using ncftp ncftp -u"$FTPU" -p"$FTPP" $FTPS<<EOF mkdir $FTPD mkdir $FTPD/$NOW cd $FTPD/$NOW put enc.key.txt lcd $BACKUP mput * quit EOF 

你可以帮帮我吗? 提前致谢

字符0a是换行符,0d是回车符。 在“ASCII模式”下,不同操作系统之间的FTP传输可以改变这些。 例如,一个将LF行终止的Unix / Linux本地file upload到Windows SharePoint站点将使每个LF都变为CRLF。 有些实现可能只是将LF更改为CR。 检查以确保您在传输中指定binary模式。

ncftp的文档表明它默认为二进制模式,但是像大多数ftp客户端一样接受binary命令。 我会在传输任何文件之前插入该命令,看看是否有帮助。 如果是这样,那意味着某种东西在某种程度上覆盖了默认值。

在这种情况下,问题显然不是ncftp而是另一端的Filezilla 。 它默认为“Auto”,这意味着一个扩展名为.txt的文件是ASS | U | MEd是ASCII码,并且会随着线路终止而混乱。