本文最后更新于 2025年4月9日 晚上
linux
1
| cat example.jpg example.zip > 1.jpg
|
Windows
打开 CMD(不能是 PowerShell)
1
| copy /b example.jpg + example.zip 2.jpg
|
生成的文件可以正常的用各种图片浏览器打开,也可以直接用你的压缩软件打开这个
'jpg' 文件,但有些时候可能需要给它加个 .zip
后缀才能正常识别,如果你的压缩软件不支持识别这种文件也没关系,后面会提到拆开的办法。
看一下生成的文件的校验值
1 2 3
| $ md5sum *.jpg c6a274f01e3eb53a467bb11a14102fed 1.jpg c6a274f01e3eb53a467bb11a14102fed 2.jpg
|
两个平台的结果是一模一样的!
这个小“魔术”的原理很简单,就是从二进制层面强行把两个文件拼接到一起,但各种软件在默认情况下只能读出来这个缝合怪的第一个部分。没用知识
+1
有合就有分,再来试一下把文件再拆出来吧,以 Linux 上的操作为例:
拆分(Linux)
首先看一下原来图片有多大
1 2 3 4
| $ stat example.jpg File: example.jpg Size: 112200 ... ... ... ...
|
喔,是 112200 字节,开搞!
只把图片拆出来直接可以用 dd 一行搞定。
1
| dd if=2.jpg of=2.1.jpg bs=1 count=112200
|
全都拆出来就要用到其他工具了
1 2 3 4 5
| mkdir split cd split/ split -b 112200 ../2.jpg mv xaa ../2.2.jpg cat ./* > ../2.2.zip
|
PS:本文只是以 zip 和 jpg
为例,所有的压缩包格式、图片格式理论上都可以使用本文所属方法
最后的最后,贴一下中间产生的所有文件的校验值
1 2 3 4 5 6 7 8 9
| $ md5sum ./* | sort -k 1 785352af167d67a06bd341617d88d3ab ./2.2.zip 785352af167d67a06bd341617d88d3ab ./2.zip 785352af167d67a06bd341617d88d3ab ./example.zip 7fc687cc6229f5cdd411f9b812bc74c7 ./2.1.jpg 7fc687cc6229f5cdd411f9b812bc74c7 ./2.2.jpg 7fc687cc6229f5cdd411f9b812bc74c7 ./example.jpg c6a274f01e3eb53a467bb11a14102fed ./1.jpg c6a274f01e3eb53a467bb11a14102fed ./2.jpg
|