zoukankan      html  css  js  c++  java
  • 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文件则从其读取,后则从本地源文件读取。。。

  • 相关阅读:
    net 面试题
    Entity Framework Core 三条引用三条命令
    软件开发模型设计
    Mysql局域网共享
    基于WinForm,百度ai接口开发的人脸识别
    WinForm创建
    SQLite Encryption(加密)新姿势
    WPF-MenuItem只显示最后一个Icon
    《深入浅出WPF》-刘铁猛学习笔记——XAML
    为什么你的问题群里没人回答?这就是原因!
  • 原文地址:https://www.cnblogs.com/kex1n/p/2311757.html
Copyright © 2011-2022 走看看