查看: 4202|回复: 4

[教程] 【水】存档验证的示例

[复制链接]

36

主题

720

回帖

13

精华

版主

经验
7347
硬币
1156 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

发表于 2021-5-10 00:12:36 | 显示全部楼层 |阅读模式
昨天 116 觉得 lyh 的教程写的不是很清楚,我就重新整了一个比较简洁明了的
也希望可以帮到其他同学(

                               
登录/注册后可看大图


                               
登录/注册后可看大图


mfa文件:
2021-5-10 00:12 上传
文件大小:
41.73 KB
下载次数:
8
mfa 文件
本地下载

评分

参与人数 1经验 +3 收起 理由
囿里有条小咸鱼 + 3 不错的教程,但是希望版主还是能给大家讲解.

查看全部评分

Moonstruck Blossom
个人网站:dasasdhba.github.io

56

主题

407

回帖

8

精华

版主

☯ 博 丽 不 是 灵 梦 ☯

经验
6096
硬币
1026 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章

发表于 2021-5-10 08:00:09 | 显示全部楼层
不错的教程,但是希望版主还是能给大家讲解一下md5的作用机理,以及md5和string parser这两个插件的用法
>❀ To the Best You ❀<

242

主题

1344

回帖

5

精华

活跃锤龟

只是普通的音mader而已

经验
7986
硬币
834 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第十届MW杯冠军PK!MF2 冠军人气之王人气之王欢迎光临秘密合战!

发表于 2021-5-10 23:34:17 来自手机 | 显示全部楼层
quickhash和stringparser是干啥的。。。

36

主题

720

回帖

13

精华

版主

经验
7347
硬币
1156 枚

赞助用户永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第五届MW杯亚军对不起,小姐盲猜大王数字君X68数字君X68数字君X78

 楼主| 发表于 2021-5-11 00:36:52 | 显示全部楼层
数字1528君 发表于 2021-5-10 23:34
quickhash和stringparser是干啥的。。。

这里用到了 QuickHash 扩展的 MD5 运算
MD5
运算简而言之就是,你随便给定一串字符,这个字符要多长都行,经过 MD5 运算一波计算之后
就会得到一串长度固定的字符,重点在于,要想通过这串新字符反推出原字符是极其困难的
示例中甚至还人为地加了一些字符,这样其他人更加猜不到这个 MD5 值是怎么得到的了

String Parser 呢,这里就用了一个功能
它可以读取整个文件的字符
所以我们就可以直接对整个文件求 MD5 值,把这个值作为我们验证存档是否被篡改的依据

说白了这种验证式的存档防修改手段就是:
1.把整个存档的某些数据经过一些不可逆运算的处理,得到一个值
2.把这个值也写入存档
3.下次在存档/读档的时候,我们先对存档进行验证,即通过相同的不可逆运算得到的存入的值是否一致
如果不一致,我们就可以认为玩家人为地修改了存档

MD5,仅仅是其中一种不可逆运算罢了。
lyh 教程用的 CRC32,换汤不换药
zqh 也曾经利用取余运算来进行存档验证
其实这都算是不可逆运算

示例中先把 key 值清空是必要的,你可以想想不清空会发生什么(
不清空的话得到的 MD5 值肯定不一样了嘛,毕竟 key 值已经存好了

MD5 算法比较厉害,应用也挺广泛的,感兴趣可以自己百度呀(
文件验证,记住密码啥的很多地方都有用哦(

Moonstruck Blossom
个人网站:dasasdhba.github.io

153

主题

1180

回帖

12

精华

管理员

脚滑王

经验
8104
硬币
662 枚

永吧十五周年建吧日纪念勋章永吧十五周年倒计时海报勋章第十一届MW杯冠军欢乐演员对不起,小姐欢迎光临秘密合战!

发表于 2021-5-11 20:27:39 | 显示全部楼层
然后这个算法被一个中国的数学老师给破解了(
(当然没必要因此就说拿这个做校验不行 毕竟校验的目的只要破解成本大就行了
个人网站wsw233.com
新作 AUEV0.5.0 制作中!
解说/版聊视频随缘更新!
您需要登录后才可以回帖 登录 | 创建账户

本版积分规则