大家应该听过换皮类似的名词吧,因为本地的那些游戏资源没有什么保护的机制,只要用类似的游戏资源去替换本地存在游戏资源,这样就可以实现换皮了(资源可以包括声音,图片,模型等等),不知道大家有没有用过英雄联盟的换模型的一个软件,其实原理很简单的,就是把做好的模型资源拖到对应的文件夹,然后改一个配置文件就可以了(有兴趣自己可以网上搜索一下),所以怎么可以预防被别人替换资源呢,接下来MD5加密就出来,可以知道那些文件有没有被替换过,而且手游热更新AB包资源的原理也是如此,现在就给大家来点干货,如图下:

这里用了一个DLL库,这个库是有md5加密功能的,调用了一下加密的接口,可以看到每一个文件会生成不同的密钥(如果里面的文件内容是相同的,密钥也是一样的,和文件的名字无关),大家可以自己网上查找一下有没有类似的DLL,或者自己写一个md5加密算法。这样需要保护的游戏资源,在游戏启动之前先计算那些游戏资源的密钥,然后和远程服务器的密钥进行对比,把密钥不一致的资源存到一个数据结构中,这些资源是需要重新下载的,这里有一个优化的方法就是这类型的资源再生成一个汇总文件然后对这个汇总文件生成一个md5秘钥,这样校验资源的时候直接校验这个文件就可以了,当然如果汇总秘钥不一致,可以选择这类型的资源一个个校验或者这一块的游戏资源文件需要全部重新下载(比如声音的汇总文件的秘钥不一致了,所有的声音资源需要重新下载了)。如果你需要对单机游戏资源进行校验的话,因为没有服务器的关系,我们可以生成md5密钥列表,把密钥存到代码中,然后本地去校验这个资源有没有被替换,如果被替换了就让玩家重新下载游戏。

游戏中MD5加密的一些作用相关推荐

  1. JavaScript中md5加密基础使用方法

    关于JavaScript中md5加密使用方法重点 不说别的,先上代码,代码其实不难,更多需要理解 //这边是前端代码 <form class="loginForm" acti ...

  2. Python中MD5加密

    MD5是什么 下面的概念是百度百科的: Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的 ...

  3. php中md5加密函数怎么用,PHP加密函数—md5()函数加密实例用法

    PHP加密函数-md5()函数加密 什么是MD5()函数? MD5()函数是计算器字符串的 MD5散列值,使用MD5的算法,MD5的全称是Message-Digest Algorithm 5,它的作用 ...

  4. php中md5加密函数怎么用,php中md5()函数的定义和用法汇总

    PHP加密函数-md5()函数加密什么是MD5()函数?MD5()函数是计算器字符串的 MD5散列值,使用MD5的算法,MD5的全称是Message-Digest Algorithm 5,它的作用是把 ...

  5. ASP.Net中MD5加密-16位32位

    public string md5(string str,int code) { if(code==16) //16位MD5加密(取32位加密的9~25字符) { return System.Web. ...

  6. java中md5加密和解密_如何在java中实现md5加密和解密

    如何在java中实现md5加密和解密 关注:273  答案:1  mip版 解决时间 2021-01-19 20:37 提问者精神疯裂 2021-01-19 05:36 如何在java中实现md5加密 ...

  7. 前端使用vux中md5加密方法

    在进行页面的账号密码等输入信息传输的时候,需要用到加密方法,那么前端可以使用简单的md5来进行加密 若是在项目中引入了vux,则可以直接用vux中的md5加密方式, 首先导入:import { md5 ...

  8. python中md5加密的实现(hashlib)

    MD5消息摘要算法:(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传 ...

  9. java加盐_Java中MD5加密加盐算法

    前俩天项目组需要做一个密码的加密加盐操作,无意中在网上看到一个对应的加密加盐算法,特意在此做一个记录 import java.security.MessageDigest; import java.u ...

  10. jmeter中md5加密

    1.可以在jmeter的bean shell中添加md5加密代码 package cn.wk.jl.util;import java.security.MessageDigest;public cla ...

最新文章

  1. 求表达式 f(n)的结果
  2. PHP中使用redis执行lua脚本示例
  3. 不想学python-没想到,学会Python即使不做程序员都能月入过万!
  4. 与优秀的人在一起进步:我发起的“乐学”分享活动
  5. 计算机考研保护一志愿,考研良心大学,保护一志愿的考研名校!
  6. 万级规模 K8s 如何管理?蚂蚁双11核心技术公开
  7. jQuery Zoom 图片聚焦或者点击放大A plugin to enlarge images on touch, click, or mouseover
  8. android gradle 1.5.0,Cordova build – 无法解析com.android.tools.build:gradle:1.5.0
  9. 使用了 PHP Code Sniffer 未使用的参数 Unused parameter
  10. 一个APP从启动到主页面显示经历了哪些过程?跳槽薪资翻倍
  11. AHP(层次分析法)的全面讲解及python实现
  12. MySql适配人大金仓数据库
  13. 确定有限状态自动机(deterministic finite automaton --> DFA)
  14. 外贸B2C系列:google企业邮箱设置
  15. python和c 情侣网名_qq情侣网名个性网
  16. php校花评比排名,投票|佛山“校花”颜值大比拼,快来选出你最爱的!
  17. 时间轮算法HashedWheelTimer
  18. erlang与rabbitmq下载(Window)
  19. 考研数据结构之数组(5.1)——练习题之移动数组所有非零元素到数组前端(C表示)
  20. matlab 理想变压器,Simscape Electrical

热门文章

  1. 单链表之快慢指针技巧
  2. 想开发一个在线的合同模板管理套件
  3. python生成的词云没有图案_Python词云生成
  4. 智图—源于QQ空间图片WebP化的思考
  5. 一般线性模型和混合线性模型_从零开始的线性混合模型
  6. 黑群晖6.1.4-DS3615xs_65217安装使用教程、含下载资源、亲测有效
  7. shp在MATLAB中裁剪数据,ENVI中利用Shape文件裁剪栅格数据
  8. python调用java之Jpype异常机制
  9. keil5安装STC芯片包
  10. 【02】 PC端网页布局之CSS3-pink老师-2022/03