Base64 压缩文件
Summary: Author: 张亚飞 | Read Time: 1 minute read | Published: 2024-02-16
Filed under
—
Categories:
Note
—
Tags:
Enshrine,
Web,
通过字符串传播文件
一次在博客上看到一个使用 base64 解压缩微信二维码的自我介绍,在终端解压出来显示一个二维码,比较有意思。
echo "H4sIANTeHl4AA71USRLDMAi79xV6KgcOfkEf6Je0dTDIDnZyaWaYTLwAEjLUd6kP2uvJZHM+1Ley
oW3LcVLaXgGOA7Xd3GcR/esNjybdfmtp3rbu/5p4rSIThh6f0zRoBr1g6ZOroJkZSsdehpoItp4p
C5yiW6Fl/EbtKBmDkL0G7CDEsfiS45nCAlDyizfr94KJB2J1jaLBYdMJ0bZeHSLHjDK6EtIfgF/c
MhleySRBLKMdiAX8bM+AyqQnzlrnIsoEn4NfsRm14H/OplQiqdzdTSZsezCZA4MeQblnip65q4dP
AnBFaD6laCQ68u78CO0QYAtq9p4uqr6aHTpeK9FhqWA6JTrn+rs9nu8DeIHHHX4HAAA=" | base64 --decode | gzip -d
[](https://www.h1ya.com/about)
研究技术原理及实现方案
- 首先将
base64
编码解压后存到一个文件
echo "H4sIANTeHl4AA71USRLDMAi79xV6KgcOfkEf6Je0dTDIDnZyaWaYTLwAEjLUd6kP2uvJZHM+1Ley
oW3LcVLaXgGOA7Xd3GcR/esNjybdfmtp3rbu/5p4rSIThh6f0zRoBr1g6ZOroJkZSsdehpoItp4p
C5yiW6Fl/EbtKBmDkL0G7CDEsfiS45nCAlDyizfr94KJB2J1jaLBYdMJ0bZeHSLHjDK6EtIfgF/c
MhleySRBLKMdiAX8bM+AyqQnzlrnIsoEn4NfsRm14H/OplQiqdzdTSZsezCZA4MeQblnip65q4dP
AnBFaD6laCQ68u78CO0QYAtq9p4uqr6aHTpeK9FhqWA6JTrn+rs9nu8DeIHHHX4HAAA=" | base64 --decode > test.txt.gz
test.txt.gz
这是一个压缩文件,我们使用 gzip -d
进行解压
gzip -d test.txt.gz
解压出来是一个 test.txt
文本文件,在终端打开文件看到就是一个文本二维码
$ cat test.txt
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ █▀█ █▄█ ▄ ▄█ █ ▄▄▄▄▄ ████
████ █ █ █▀▀▀█ ▀▄▀▀█▄▀▄█ █ █ ████
████ █▄▄▄█ █▀ █▀▀▄▄ ▄ █ █ █▄▄▄█ ████
████▄▄▄▄▄▄▄█▄▀ ▀▄█▄█ █ ▀ █▄▄▄▄▄▄▄████
████ ▄▄▄█▄▄ ▄▀▄▀▄▀█▀▀▀ █ ▀ ▀▄█▄▀████
████ █ ▀ ▀▄▀██▄█▀██ ▀▄██ ▄▀ ▀█▀█████
█████▀█▀▄█▄▄█ ▄█▄▀▄▄▄ ▀ ▀▀▀▀▀▄▄█▀████
████ ▄▄█ ▄▀▄▄▄ ▄▄█▄ █▄▀ ▄ ▀▄▄▀█████
████ █ █▄▀▄▀▄▀▀▄▀▄ ▄ ▄▀ ▀▀▀ ▀▄ █▀████
████ █▀▄▄▄▄█▀█▄█▀▄█▄▀▄ ▀▄▄█▀██▄▀█████
████▄█▄▄▄█▄▄▀█▄█▄ ▄ ▀▀█ ▄▄▄ ▀ ████
████ ▄▄▄▄▄ █▄▄▄ ▄██ ██▄ █▄█ ▄▄▀█████
████ █ █ █ ▄▀▄ █ █▄███ ▄▄▄▄▀ ▀ ████
████ █▄▄▄█ █ █▀█ ▄ ██ ▄ █▄▀ ▄ █████
████▄▄▄▄▄▄▄█▄▄███▄█ ▀███▄█▄▄▄▄██████
█████████████████████████████████████
█████████████████████████████████████
原来是一个显示二维码特殊黑白字符组成的文本文件,再进行压缩,最后转成 base64
编码实现的
根据原理反向操作,修改 test.txt
文本文件
例如
┈╭━━━━━━━━━━━╮┈
┈┃╭━━━╮┊╭━━━╮┃┈
╭┫┃┈🦀┈┃┃┈🦀┈┃┣╮
┃┃╰━━━╯┊╰━━━╯┃┃
╰┫╭━╮╰━━━╯╭━╮┣╯
┈┃┃┣┳┳┳┳┳┳┳┫┃┃┈
┈┃┃╰┻┻┻┻┻┻┻╯┃┃┈
┈╰━━━━━━━━━━━╯┈
压缩成 test.txt.gz
文件
gzip test.txt
使用 base64
进行编码
base64 -i test.txt.gz
最后仿照上面的命令格式拼接起来
echo "H4sICNwwfmYAA3Rlc3QudHh0AHs0pePR1LWPpjQSQFPXPZrSwQXEj6Y0o2gASXRhiDSDVYNEV0M4H+Yva4DqxuAvBmrhgspM3YBk0Hqw0WgiIGVcYNHVUGuBFqIpgouDzF7PhWTx4kdTNmNDq+EuQ1INMnU3FgRzBkw1su04A3A9SDUAswNXGW8BAAA=" | base64 --decode | gzip -d
Comments