quick-cocos2d-x 2.2.3 rc版本中 crypto.md5file() 的C++实现在ANDROID上有BUG
2014-06-27 14:11
585 查看
原来的版本是用fopen打开文件的,如果要从ANDROID的APK中取文件,直接就洗白了
修改如下
void CCCrypto::MD5File(const char* path, unsigned char* output)
{
unsigned long len = 0;
//to make sure we can get data of files easily from ios,android,pc etc.
//we use CCFileUtils::sharedFileUtils()->getFileData
unsigned char* pData = CCFileUtils::sharedFileUtils()->getFileData(path, "r", &len);
if (pData == NULL || len == 0){
CCLOG("CCCrypto::MD5File() can't open file %s", path);
return;
}
MD5_CTX ctx;
MD5_Init(&ctx);
MD5_Update(&ctx, pData, len);
MD5_Final(output, &ctx);
//delete data as CCFileUtils::sharedFileUtils()->getFileData claimed.
if (pData != NULL)
delete[] pData;
}
修改如下
void CCCrypto::MD5File(const char* path, unsigned char* output)
{
unsigned long len = 0;
//to make sure we can get data of files easily from ios,android,pc etc.
//we use CCFileUtils::sharedFileUtils()->getFileData
unsigned char* pData = CCFileUtils::sharedFileUtils()->getFileData(path, "r", &len);
if (pData == NULL || len == 0){
CCLOG("CCCrypto::MD5File() can't open file %s", path);
return;
}
MD5_CTX ctx;
MD5_Init(&ctx);
MD5_Update(&ctx, pData, len);
MD5_Final(output, &ctx);
//delete data as CCFileUtils::sharedFileUtils()->getFileData claimed.
if (pData != NULL)
delete[] pData;
}
相关文章推荐
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- quick-cocos2d-x android返回键监听并实现原生退出对话框
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- quick-cocos2d-x的热更新机制实现<三>Updater(C++)
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- mac下用ccache加速cocos2d-x-2.2.3的android版本编译
- quick-cocos2d-x android返回键监听并实现原生退出对话框
- cocos2d-x实现Android版本的sdk的思路见解-----------------cocos2d-x3.0正式版本(7.4)
- 设计模式之 原型模式(prototype)(C++实现 深拷贝 + 浅拷贝版本[bug])
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调 .
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- cocos2d-x 通过JNI实现c/c++和Android的java层函数交互
- cocos2d-x 通过JNI实现c/c++和Android的java层函数交互
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- (跨平台)cocos2d-x C++ or Object-C(前端)调用C# webservices(后台),实现交叉编译到Android/IOS/WinPhone等移动终端设备
- 基于Quick-cocos2d-x 2.2.3 的动态更新实现