请选择 进入手机版 | 继续访问电脑版

 找回密码
 点一下
查看: 960|回复: 9

加密思路

[复制链接]
发表于 2018-6-22 22:01:22 | 显示全部楼层 |阅读模式
本帖最后由 OracleKirito 于 2018-6-22 22:09 编辑

我現在是自己用加密方式加密存的數值,那麼假如我要更新版本要加入新的數值,要怎麼做才比較好?P.S我這地圖會放到戰網上的
求解謝謝


发表于 2018-6-23 09:27:57 | 显示全部楼层
直接加入就好。如果玩家上一个存档是旧版本,那么自然新值就是空值,比如空字符串,0值等,这应该不会对你的数据验证产生影响(前提你的数据验证是合理的)。当玩家用新版本游戏后,这些新值可能变成非空,但是只要被保存过,再次验证也不会有问题。
如果你的新值默认就不是空值,这时可以加入一个判断机制,判断这些值是否为默认值,如果默认,就不考虑他。如果说游戏过程中这些值仍然可能回到默认值,那么你只好在玩家存档中加入版本号来控制需要判定的值了。
回复

使用道具 举报

 楼主| 发表于 2018-6-23 12:11:01 | 显示全部楼层
有了DATETIME之後也可以去抓了反而變得更方便了

点评

問個問題 如果是舊的數值要砍掉加密友用道呢?  详情 回复 发表于 2018-6-23 12:59
回复

使用道具 举报

 楼主| 发表于 2018-6-23 12:59:36 | 显示全部楼层
OracleKirito 发表于 2018-6-23 12:11
有了DATETIME之後也可以去抓了反而變得更方便了

問個問題
如果是舊的數值要砍掉加密友用道呢?

点评

什麼叫加密友用道?  详情 回复 发表于 2018-7-1 07:59
回复

使用道具 举报

发表于 2018-7-1 07:59:47 | 显示全部楼层
OracleKirito 发表于 2018-6-23 12:59
問個問題
如果是舊的數值要砍掉加密友用道呢?

什麼叫加密友用道?

点评

就是說假如我有個等級跟經驗值要存而加密的部分就是這2個數相加,但是現在我要把等級弄掉的話,變成只有經驗值這樣,那麼加密要怎麼改,才不會讓舊版本的驗證衝突到。  详情 回复 发表于 2018-7-1 13:20
回复

使用道具 举报

 楼主| 发表于 2018-7-1 13:20:46 | 显示全部楼层
yxxiaobin 发表于 2018-7-1 07:59
什麼叫加密友用道?

就是說假如我有個等級跟經驗值要存而加密的部分就是這2個數相加,但是現在我要把等級弄掉的話,變成只有經驗值這樣,那麼加密要怎麼改,才不會讓舊版本的驗證衝突到。

点评

这就是我提到过的方案了,分开不同的部分,分别验证他们,修改一个部分,不会影响到另外一个部分。 如果针对同一部分的内容做出了一些改动,推荐使用版本号或者时间函数来区分不同版本。  详情 回复 发表于 2018-7-1 16:48
回复

使用道具 举报

发表于 2018-7-1 16:48:16 | 显示全部楼层
OracleKirito 发表于 2018-7-1 13:20
就是說假如我有個等級跟經驗值要存而加密的部分就是這2個數相加,但是現在我要把等級弄掉的話,變成只有 ...

这就是我提到过的方案了,分开不同的部分,分别验证他们,修改一个部分,不会影响到另外一个部分。
如果针对同一部分的内容做出了一些改动,推荐使用版本号或者时间函数来区分不同版本。

点评

那麼假如說以後出了一堆的版本號了,那捨棄掉的加密程序不就會很冗長嗎?  详情 回复 发表于 2018-7-4 11:04
回复

使用道具 举报

 楼主| 发表于 2018-7-4 11:04:20 | 显示全部楼层
yxxiaobin 发表于 2018-7-1 16:48
这就是我提到过的方案了,分开不同的部分,分别验证他们,修改一个部分,不会影响到另外一个部分。
如果 ...

那麼假如說以後出了一堆的版本號了,那捨棄掉的加密程序不就會很冗長嗎?

点评

如果你分區驗證,絕大多數時候都不需要改動驗證過程,也不需要讀取版本號。事實上,只有極少數情況會出現分區內變動(除非你開始就沒設計好遊戲內容)。仍然拿保存一個物品來說,對於一個物品來講,牠有用的數據只有  详情 回复 发表于 2018-7-4 18:24
回复

使用道具 举报

发表于 2018-7-4 18:24:40 | 显示全部楼层
OracleKirito 发表于 2018-7-4 11:04
那麼假如說以後出了一堆的版本號了,那捨棄掉的加密程序不就會很冗長嗎?

如果你分區驗證,絕大多數時候都不需要改動驗證過程,也不需要讀取版本號。事實上,只有極少數情況會出現分區內變動(除非你開始就沒設計好遊戲內容)。仍然拿保存一個物品來說,對於一個物品來講,牠有用的數據只有充能計數、所在物品欄容器、所在物品欄槽位,你可以只保存這三個數據,并用牠們來形成一組驗證碼,就能保存并驗證一個物品了。假如你以後的版本又需要保存物品單位的生命值了,那麼只需要新開一個(或一組)保存值,並且單獨應用一個驗證碼。至於以前的內容,是不需要更改的。除非有一天,你不要再保存物品的容器和槽位了,你想移除它,這時候才需要讀取版本號進行驗證。事實上,如果我們不需要某個數據,可以繼續讀取和保存它,只要後續應用上忽略他就好,沒必要一定刪除它,這時候就能避免讀取版本號了。

点评

我就是那個沒設計好加密分類的那個...我一直看不懂你的加密....  详情 回复 发表于 2018-7-4 18:33
回复

使用道具 举报

 楼主| 发表于 2018-7-4 18:33:53 | 显示全部楼层
yxxiaobin 发表于 2018-7-4 18:24
如果你分區驗證,絕大多數時候都不需要改動驗證過程,也不需要讀取版本號。事實上,只有極少數情況會出現 ...

我就是那個沒設計好加密分類的那個...我一直看不懂你的加密....
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 22:42 , Processed in 0.513637 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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