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