PHP 把源文件加密到 BMP 位图

以前看过一个C++的视频, 说的是把文件隐藏到BMP位图中。
学了PHP之后,(PHP是世界上最好的语言) 应该也可以完成这个任务。

当然并没有什么实际作用,看看就可以了。
所以就动手做了一个~~~
利用的是BMP位图在色道中,每四个字节就有一个字节是无用的,所以就可以把源文件base64化然后单个拆分存入图片中,再重新生成一张BMP位图, 表面上看不出有任何变化。大小如果不超过源文件的1/4的话,也是不会有变化的:

比如位图是5M,需要加密的文件是1M,当加密后,位图还是5M,而且已经把需要加密的文件存入位图中

刚开始,可以加密文件,但是解密出来会有很多无用的字符串。
后来 ,当加密文件时,增加了2个标记, 一个标记文件名长度,用四个字节存储, 一个标记文件数据长度。用八个字节存储。
这样就可以保证能准确读取多大的数据块。
上点核心代码:
file
演示地址
github 地址
!!! demo 的地址,不需要上传 bmp 也可以的,因为我服务器内置了一张 2.47m 的 bmp, :smiley:, 你只要加密之后会返回一张 BMP 图片, 然后再点击解密按钮选择加密后的bmp位图就可以得到源文件了

本作品采用《CC 协议》,转载必须注明作者和本文链接
当神不再是我们的信仰,那么信仰自己吧,努力让自己变好,不辜负自己的信仰!
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!