MD5例子及其用途

下载

/* MD5.H - header file for MD5C.C
* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
* rights reserved.

共有三个文件MD5.h, MD5c.c, global.h

 1 #include "global.h"
2
3 extern "C"
4 {
5 #include "MD5.h"
6 };
7
8 #include <string>
9
10 int main()
11 {
12 MD5_CTX message;
13 std::string s = "";
14 unsigned char *data = (unsigned char*)s.c_str();
15 unsigned char md[16];
16 char buf[33] = {'\0'};
17 char tmp[33] = {'\0'};
18 int i;
19
20 // 初始化MD5_CTX结构
21 MD5Init(&message);
22 // @message — MD5_CTX结构
23 // @data — 输入数据
24 // @16 — 输入数据的大小字节数
25 MD5Update(&message, data, 16);
26 // @md — 存储md5数据的字符数组
27 // @message — MD5_CTX结构
28 MD5Final(md, &message);
29
30 for(i=0; i<16; i++)
31 {
32 sprintf(tmp, "%02X", md[i]);
33 strcat(buf,tmp);
34 }
35 std::cout<<buf;
36 return 0;
37 }

 

MD5用在游戏打包时,将所有的模型,纹理贴图,地图。。等数据打包成.sqp文件后,对比打包后的数据源文件的MD5值,若相同的话则打包成功,可以删掉源文件以节省存储空间。

打包后文件的数据可以直接通过sfmpq的api根据文件名打开;源文件的话通过内存映射文件打开,分别计算其MD5值即可。

游戏加载数据的时候若存在.spq文件则从其读取,后则从本地源文件读取。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值