cocos2d-x 文件MD5校验(10)

来源:未知 责任编辑:责任编辑 发表时间:2013-11-15 19:49 点击:

p> *****************************************************************************************/  

p>void CMD5Checksum::DWordToByte(BYTE* Output, DWORD* Input, UINT nLength )  

p>{  

p>    //entry invariants  

p>    ASSERT( nLength % 4 == 0 );  

p>    //ASSERT( AfxIsValidAddress(Output, nLength, TRUE) );  

p>    //ASSERT( AfxIsValidAddress(Input, nLength/4, FALSE) );  

p>      

p>    //transfer the data by shifting and copying  

p>    UINT i = 0;  

p>    UINT j = 0;  

p>    for ( ; j < nLength; i++, j += 4)  

p>    {  

p>        Output[j]  = (UCHAR)(Input[i] & 0xff    );  

p>        Output[j+1] = (UCHAR)((Input[i] >> 8) & 0xff);  

p>        Output[j+2] = (UCHAR)((Input[i] >> 16) & 0xff);  

p>        Output[j+3] = (UCHAR)((Input[i] >> 24) & 0xff);  

p>    }  

p>}  

p>  

p>  

p>/***************************************************************************************** 

p> FUNCTION:  CMD5Checksum::Final 

p> DETAILS:  protected 

p> DESCRIPTION: Implementation of main MD5 checksum algorithm; ends the checksum calculation. 

p> RETURNS:  std::string : the final hexadecimal MD5 checksum result 

p> ARGUMENTS:  None 

p> NOTES:   Performs the final MD5 checksum calculation ('Update' does most of the work, 

p> this function just finishes the calculation.) 

p> *****************************************************************************************/  

p>std::string CMD5Checksum::Final()  

p>{  

p>    //Save number of bits  

p>    BYTE Bits[8];  

p>    DWordToByte( Bits, m_nCount, 8 );  

p>      

p>    //Pad out to 56 mod 64.  

p>    UINT nIndex = (UINT)((m_nCount[0] >> 3) & 0x3f);  

p>    UINT nPadLen = (nIndex < 56) ? (56 - nIndex) : (120 - nIndex);  

p>    Update( PADDING, nPadLen );  

p>      

p>    //Append length (before padding)  

p>    Update( Bits, 8 );  

p>      

p>    //Store final state in 'lpszMD5'  

p>    const int nMD5Size = 16;  

p>    unsigned char lpszMD5[ nMD5Size ];  

p>    DWordToByte( lpszMD5, m_lMD5, nMD5Size );  

p>      

p>    //Convert the hexadecimal checksum to a std::string  

p>    std::string strMD5;  
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • cocos2d-x学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x学习(一):HelloWorld
  • cocos2dx在xcode下开发,编译到android上(2)
  • cocos2d 设置屏幕默认方向
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1