大家应该听过换皮类似的名词吧,因为本地的那些游戏资源没有什么保护的机制,只要用类似的游戏资源去替换本地存在游戏资源,这样就可以实现换皮了(资源可以包括声音,图片,模型等等),不知道大家有没有用过英雄联盟的换模型的一个软件,其实原理很简单的,就是把做好的模型资源拖到对应的文件夹,然后改一个配置文件就可以了(有兴趣自己可以网上搜索一下),所以怎么可以预防被别人替换资源呢,接下来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. How Does Maven Work
  2. Scala基础教程(六):字符串、数组、集合
  3. elasticsearch 最佳实践
  4. 完全备份、差异备份、增量备份的区别
  5. 【Flask】在g对象中存放List,实现在捕获异常后继续执行for循环
  6. java 实现 堆排序算法_C程序实现堆排序算法
  7. 计算机病毒小学教师资格证面试,小学信息技术人教版四年级上册第15课《病毒防治及时做》优质课公开课教案教师资格证面试试讲教案...
  8. java netty 面试_Java 200+ 面试题补充② Netty 模块
  9. python程序控制结构与分支的实验报告_Python程序设计实验报告三:分支结构程序设计...
  10. 【表盘识别】基于matlab Hough变换指针式仪表识别(倾斜矫正)【含Matlab源码 1058期】
  11. 775针服务器cpu性能排行,775针cpu排行榜说明
  12. linux强制删除文件夹
  13. 一个人的生命周期,就是人的一生
  14. 标志寄存器(PSW)
  15. 在weblogic下部署找不到授权文件的解决方法
  16. 手把手教你用JAVA调用Websocket实现“声音转换”功能(变声)标贝科技
  17. matlab读取xlsx文件,将大Excel(xlsx)文件加载到matlab中
  18. matlab函数:residue和residuez的用法
  19. 静态HTML网页设计作品 DIV布局家乡介绍网页模板代码---(太原 10页带本地存储登录注册 js表单校验)
  20. HTML5中canvas实现拼图游戏,HTML5 Canvas学习笔记(6)拼图游戏(数字版)

热门文章

  1. EAS 后台事务配置
  2. 交通部 808 协议2019版 - 免费下载 - 官网下载
  3. 朗文3000词汇表带音标_朗文少儿英语2A-Unit3知识归纳(单词含音标版
  4. JavaScript(Bom编程)
  5. 认识网络、几种常用的网络拓扑图
  6. 项目管理常用套表模板介绍
  7. 非计算机专业怎么准备蓝桥杯,大三接触算法,用寒假时间准备蓝桥杯,如何提高成绩?...
  8. 最小二乘拟合曲线证明+正则方程
  9. 根据经纬度计算两地之间的距离
  10. linux exosip编译,eXosip2 osip 编译安装