求助, mysql 中的照片如何提取

2021-02-05 13:41:52 +08:00
 cage111

十六进制如图显示
[url=https://imgchr.com/i/y8WOc6][img]
里面好像有 utf-8 编码 efbf bdef bfbd,直接提取打不开。

2016 次点击
所在节点    程序员
14 条回复
wqhui
2021-02-05 13:54:44 +08:00
这有点像二进制流,存进去前怎么处理的,取出来逆向处理一下也变不了图片吗
ShinChven
2021-02-05 13:54:58 +08:00
我们是存的 base64,从在相应请求的时候转成二进制。
当然这样性能很低。
于是加了一个缓存,文件被第一次读取的时候同时会生成一个缓存文件放在磁盘上(容器内,重建容器即清空)。
下次再请求这个文件的时候会优先去读缓存。
cage111
2021-02-05 14:08:10 +08:00
@wqhui 历史版本遗留的数据,没人怎么存的,想试着解析下
cage111
2021-02-05 14:09:01 +08:00
@wqhui 历史版本遗留的数据,没人知道怎么存的,想试着解析下
lllllliu
2021-02-05 14:13:15 +08:00
能丢给我一份二进制么。
debuggerx
2021-02-05 14:19:14 +08:00
难道不是 jfif 格式很多软件打不开的问题么……
Flymachine
2021-02-05 14:21:25 +08:00
@cage111
** 1. 先解析文件头,找找文件类型标识:

```
(以下百度)
1.JPEG/JPG - 文件头标识 (2 bytes): $ff, $d8 (SOI) (JPEG 文件标识) - 文件结束标识 (2 bytes): $ff, $d9 (EOI)
2.TGA - 未压缩的前 5 字节 00 00 02 00 00 - RLE 压缩的前 5 字节 00 00 10 00 00
3.PNG - 文件头标识 (8 bytes) 89 50 4E 47 0D 0A 1A 0A
4.GIF - 文件头标识 (6 bytes) 47 49 46 38 39(37) 61 G I F 8 9 (7) a
5.BMP - 文件头标识 (2 bytes) 42 4D B M
6.PCX - 文件头标识 (1 bytes) 0A
7.TIFF - 文件头标识 (2 bytes) 4D 4D 或 49 49
8.ICO - 文件头标识 (8 bytes) 00 00 01 00 01 00 20 20
9.CUR - 文件头标识 (8 bytes) 00 00 02 00 01 00 20 20
10.IFF - 文件头标识 (4 bytes) 46 4F 52 4D F O R M
11.ANI - 文件头标识 (4 bytes) 52 49 46 46 R I F F
```
** 2. 有符合的标识就说明没做其他操作,提取出来按相应格式处理即可。

** 3. 没标识就是二次加工过了。先试试自己加文件头标识,看看能不能还原。不行就要自己去找解码方式了

*** 1. 如果有原处理程序,可以自己存一张纯色图片,根据编码结果的差异,检索确定解码方式。或者读取里面的图片,来检索确定解码方式

*** 1. 如果没有原处理程序。那就只能靠规律去猜了。猜测图片的大致内容,通过大色块(比如`2C2C 2C2C`这段),猜测它原本指的是哪种颜色,从而找出解码方式。这就比较麻烦了。
cage111
2021-02-05 14:23:07 +08:00
debuggerx
2021-02-05 14:25:44 +08:00
难道不是 jfif 格式很多软件打不开的问题么……
@debuggerx 只看到 jfif 没看到前面的错误编码,大意了,打搅了。。。
kiracyan
2021-02-05 14:30:14 +08:00
这图片从来没人用到吗?
debuggerx
2021-02-05 14:38:10 +08:00
看上去是二进制数据被 utf 强转保存 已经被破坏了 没救
jtnwm
2021-02-05 14:43:05 +08:00
锟斤拷
learningman
2021-02-05 14:44:43 +08:00
可以拿来当 CTF 的题(
lllllliu
2021-02-05 15:33:57 +08:00
11 楼说的对,utf 强转的已经丢失掉很多东西了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/751551

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX