找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 376|回复: 14

教程贴:如何读取数据库中的blob字段

[复制链接]

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
发表于 2025-1-4 14:52:00 | 显示全部楼层 |阅读模式
下面是图片为sql查询穿戴的装备

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:52:13 | 显示全部楼层
首先要知道的是这个数据是经过zlib压缩的,所以我不可能找到任何和身上相关的数据,例如装备的id, 所以,第一步,就是解压缩
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:53:13 | 显示全部楼层
1.使用mysql自带的解压缩方法

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:53:52 | 显示全部楼层
2.要知道,本身blob的数据是二进制的,只是这里显示的是十六进制,在使用java或者python,c++还是其他,都有zlib解压的工具类。如果要使用这些工具类,要注意的是,解压缩前,要丢弃前四个字节。原因大概是如下图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:54:02 | 显示全部楼层
java的解压方式如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:54:36 | 显示全部楼层
解压之后,我们会看到这里解压之后是732字节,转换为二进制就是如下的结果
00000000000000010110000001110010000.....
0101的结果,解析主要是看懂这部分内容
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:54:52 | 显示全部楼层
我之前发过,每个格子是61个字节,对应的字节翻译如下
0  封装/魔法封印
1  类型 1装备 8时装 5 6
2-5  装备id
6  强化等级
7-10 装备品级
11-12 耐久度
13-16 宝珠
17  增幅 1体力 2精神 3力量 4智力
18-19 增幅附加值 最大65536
31-32 异界气息
37-50 魔法封印,具体可以看看神牛的教程,或者插件相关的代码
51  锻造等级
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:55:48 | 显示全部楼层
之前解压缩后的二进制 就需要每61个字节,即61*8个数字。
我们在智力以2-5个字节,装备id为教程
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:56:09 | 显示全部楼层
加压后的二进制如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:56:51 | 显示全部楼层
装备id对应的字节为

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:57:04 | 显示全部楼层
操作系统在处理二进制是分高位和低位的,
这里不用管是高位还是低位,反正不一样
需要高低位互换


将最后一行 00000110000001010111001001100000 转换为 十进制就是 101020256

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:57:21 | 显示全部楼层
101020256就是装备id,去pvf搜索就可以查到

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:57:27 | 显示全部楼层
基于此可以实现什么呢,你们自己想吧
回复 支持 反对

使用道具 举报

2508

主题

2万

回帖

7万

积分

管理员

积分
74986
发表于 2025-1-4 14:58:25 | 显示全部楼层
不明觉厉!
回复 支持 反对

使用道具 举报

2000

主题

1万

回帖

6万

积分

出神入化

积分
66044
 楼主| 发表于 2025-1-4 14:59:05 | 显示全部楼层
不愧是v佬 🐂啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表