台服dnf吧 关注:118,275贴子:1,889,650

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

只看楼主收藏回复

下面是图片为sql查询穿戴的装备


IP属地:山西1楼2023-01-13 21:45回复
    首先要知道的是这个数据是经过zlib压缩的,所以我不可能找到任何和身上相关的数据,例如装备的id, 所以,第一步,就是解压缩


    IP属地:山西2楼2023-01-13 21:47
    回复
      1.使用mysql自带的解压缩方法


      IP属地:山西3楼2023-01-13 21:51
      回复
        2.要知道,本身blob的数据是二进制的,只是这里显示的是十六进制,在使用java或者python,c++还是其他,都有zlib解压的工具类。如果要使用这些工具类,要注意的是,解压缩前,要丢弃前四个字节。原因大概是如下图


        IP属地:山西4楼2023-01-13 21:56
        回复
          java的解压方式如下


          IP属地:山西5楼2023-01-13 21:57
          回复
            解压之后,我们会看到这里解压之后是732字节,转换为二进制就是如下的结果
            00000000000000010110000001110010000.....
            0101的结果,解析主要是看懂这部分内容


            IP属地:山西6楼2023-01-13 21:59
            回复
              我之前发过,每个格子是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 锻造等级


              IP属地:山西7楼2023-01-13 22:01
              收起回复
                之前解压缩后的二进制 就需要每61个字节,即61*8个数字。
                我们在智力以2-5个字节,装备id为教程


                IP属地:山西8楼2023-01-13 22:03
                收起回复
                  加压后的二进制如下


                  IP属地:山西9楼2023-01-13 22:05
                  回复
                    装备id对应的字节为


                    IP属地:山西10楼2023-01-13 22:06
                    回复
                      操作系统在处理二进制是分高位和低位的,
                      这里不用管是高位还是低位,反正不一样
                      需要高低位互换

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


                      IP属地:山西11楼2023-01-13 22:13
                      收起回复
                        101020256就是装备id,去pvf搜索就可以查到


                        IP属地:山西12楼2023-01-13 22:14
                        回复
                          基于此可以实现什么呢,你们自己想吧


                          IP属地:山西13楼2023-01-13 22:15
                          收起回复
                            不明觉厉!


                            IP属地:江苏14楼2023-01-14 00:54
                            回复
                              不愧是v佬 🐂啊


                              IP属地:安徽来自Android客户端15楼2023-01-14 02:07
                              回复