找回密码
 点一下
查看: 4672|回复: 11

数据集加密演示

[复制链接]
发表于 2015-2-1 00:30:55 | 显示全部楼层 |阅读模式
本帖最后由 yxxiaobin 于 2017-8-19 23:25 编辑

前些时候随手写了点东西,关于数据集加密的一些闲话吧。这是原文:http://bbs.islga.org/read-htm-tid-2198871-page-1-fpage-1.html
当然那篇帖子里说的很浅显——随手写的嘛,而且我毕竟不是搞密码专业的。本来也没想过能帮到大家什么,但是近期看到有人对此挺感兴趣,并求演示,无果后又私信我,再不回复真的很不好意思了,于是抽时间写了这个演示。
总体上说是遵照了所附的那篇帖子中的思路,不过扩展到了所有英文字母和数字,包括负号和小数点。当然,如果大家需要,也很容易扩展到更多,比如包含特殊符号什么的。
因为演示数据集的使用,好多东西需要自己测试才能体会,所以就不截图了。
最后附上演示地图: 演示数据集加密.SC2Map (43.79 KB, 下载次数: 165)

-----------------------------------------------------------------------------------------------------------------------------
考虑到有时候需要缩短密文字符串(比如原文字符串很长,超过bank的限制),所以在加密字符串函数里添加了一个参数,现在可以指定明文与密文的比例了,比如将比例设置为2,如果原文有6个字符,则密文则有3个,原文有7个,密文则有4个。如果不希望缩短,只要将比例设置为1就好了。利用这个参数可以很方便的缩短密文字符串的长度。需要注意的是,缩短密文是一种摘要加密,是不可反向解密的。

演示数据集加密.SC2Map (45.08 KB, 下载次数: 66)
发表于 2015-2-1 17:07:39 | 显示全部楼层
现在战网能发布地图了吗
回复

使用道具 举报

发表于 2015-2-2 08:31:01 | 显示全部楼层
太感谢了,下载来学习,我估计如我同求的人应该不少!
回复

使用道具 举报

发表于 2015-2-2 15:09:39 | 显示全部楼层
支持个。。。。
回复

使用道具 举报

发表于 2018-4-30 08:26:44 来自手机 | 显示全部楼层
我一直在用你这个加密文件,有个问题想请教你,如何校验数组。 比如我有200个装备,每个装备有11个自定义值,我把这个数组1-200、1-11,保存到BANK,恢复校验就是一个问题了,校验文件好像不能支持数组。 我现在是用一个算法保存一个值,再保存一个原值,开始游戏回算用了算法的值和原值进行对比,值相同则通过。这种做法很容易被看出来

点评

如果这些值都可以作为数值或字符串的话,那么也可以用这种加密方式,只要遍历数组,每个元素都加入进来就好了。比如一个整数数组A,它的元素1是56,元素2是63,你可以让元素1和元素2相加,作为一级密文,然后参与以  详情 回复 发表于 2018-5-1 18:19
回复

使用道具 举报

 楼主| 发表于 2018-5-1 18:19:03 | 显示全部楼层
aolinge2017 发表于 2018-4-30 08:26
我一直在用你这个加密文件,有个问题想请教你,如何校验数组。 比如我有200个装备,每个装备有11个自定义值 ...

如果这些值都可以作为数值或字符串的话,那么也可以用这种加密方式,只要遍历数组,每个元素都加入进来就好了。比如一个整数数组A,它的元素1是56,元素2是63,你可以让元素1和元素2相加,作为一级密文,然后参与以后的加密。
回复

使用道具 举报

发表于 2019-3-10 15:28:34 | 显示全部楼层
你好,老师,请问,那个数据集加密,怎么给科技升级套上去??我研究了一星期了,没研究出眉目我的存档是保存所有升级,可是我不知道用你的加密演示怎么套上去

点评

老师这个称呼可不敢当,大家一起交流讨论而已。 如果是科技升级的话,常规思路是要保存两个字段,一个是科技升级的id,是一个字符串,另一个是科技等级,是一个整数。这就归结到,如何让一个字符串和一个整数产生验  详情 回复 发表于 2019-3-11 10:44
回复

使用道具 举报

 楼主| 发表于 2019-3-11 10:44:57 | 显示全部楼层
12399637 发表于 2019-3-10 15:28
你好,老师,请问,那个数据集加密,怎么给科技升级套上去??我研究了一星期了,没研究出眉目我的存档是保存所有 ...

老师这个称呼可不敢当,大家一起交流讨论而已。
如果是科技升级的话,常规思路是要保存两个字段,一个是科技升级的id,是一个字符串,另一个是科技等级,是一个整数。这就归结到,如何让一个字符串和一个整数产生验证码的问题。方法很多,举个例子:将整数转换为字符串,然后和ID字符串串在一起,然后使用字符串加密的方法进行加密(比如进行替换、移位等)。如果要加深加密程度,可以先将整数进行一定的运算,比如乘以一个实数,然后再转换为字符串,字符串加密使用多种手段,比如替换-移位-再替换。
不过我个人认为,过度复杂的加密是没意义的。因为如果玩家破不了你的图,那么即使简单的替换加密也是无法被破解的。如果破了你的图,什么花样都是白费的。
回复

使用道具 举报

发表于 2019-3-12 12:13:14 来自手机 | 显示全部楼层
其实我不用多么复杂的加密,我把套上去以后第二句不管是通关还是失败都是提示被改档,我不知道问题到底出在了哪

点评

这个就不好说了,取决于你的代码怎么设计。 你可以把验证码发送到调试区,看看哪里不一样。 容易出错误的地方是: 1.使用了不同数据产生验证码,比如一个是初始化时的,一个是游戏过程中被改动的,产生的验证码当  详情 回复 发表于 2019-3-12 19:00
回复

使用道具 举报

 楼主| 发表于 2019-3-12 19:00:03 | 显示全部楼层
12399637 发表于 2019-3-12 12:13
其实我不用多么复杂的加密,我把套上去以后第二句不管是通关还是失败都是提示被改档,我不知道问题到底出在 ...

这个就不好说了,取决于你的代码怎么设计。
你可以把验证码发送到调试区,看看哪里不一样。
容易出错误的地方是:
1.使用了不同数据产生验证码,比如一个是初始化时的,一个是游戏过程中被改动的,产生的验证码当然就不一样。
2.没有正确记录验证码,结果下次读取时读到的验证码本身就是错的,使用数据重新生成验证码,也就和原来的不一样了。
回复

使用道具 举报

发表于 2021-5-19 16:06:41 | 显示全部楼层
老师 可以防盗图吗 我想学

点评

不能防盗图,这个只是让玩家不能轻易更改存档以达到作弊的目的。  详情 回复 发表于 2021-5-27 00:26
回复

使用道具 举报

 楼主| 发表于 2021-5-27 00:26:57 | 显示全部楼层
不死突袭编年体 发表于 2021-5-19 16:06
老师 可以防盗图吗 我想学

不能防盗图,这个只是让玩家不能轻易更改存档以达到作弊的目的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-22 00:19 , Processed in 0.647576 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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