我想将校验和信息嵌入到我传输的文件中。它是tar.gz
一个tar.xz
文件,我只能将一个文件传输到远程端。
您建议我如何嵌入校验和信息?
我想要整个档案的校验和,而不是它的内容(我想在解压“之前”检查它的完整性)。
我知道我可以以某种支持校验和的格式再次打包它(例如rar
),但“重新打包”东西的计算成本只是为了添加校验和(另一方面我不喜欢rar
格式)。因此,首选类似gzip
& gunzip
etc 的东西,但用于添加、检查和删除校验和。
有什么工具、想法、脚本、解决方法吗?
我是对的.xz
并且.gz
支持串联吗?也许值得使用此功能在文件末尾附加压缩校验和?
答案1
cat file.gz file.gz.sig > transfer_me.signed
然后,在远程主机上,您使用以下命令拆分附加的校验和
tail -c length_of_the_checksum_info transfer_me.signed > file.gz.sig
head -c -length_of_the_checksum_info transfer_me.signed > file.gz
请注意第二个命令中的减号。长度取决于您使用的校验和的类型。你可以只
md5sum file.gz | cut -d ' ' -f 1 > file.gz.sig
另请注意,通过这种方式,您还可以transfer_me.signed
直接解压文件而无需拆分,因为tar
会忽略尾随的“垃圾”。
例如,具有附加加密或加扰机制的类似解决方案用于对许多移动设备进行签名更新亚马逊 Kindle。但就他们而言,存档文件识别是不受欢迎的,因此他们将所有指纹信息放在开始的更新文件。