位置: 编程技术 - 正文

cocos2dx 使用 crypto++(cocos2d解密)

编辑:rootadmin
在ios上使用加密解密,crypto&#;&#;是一个好选择,配置过程如下:我在github上找到了CryptoPP-for-iOS,地址: #include "zlib.h"改成 #include <zlib.h> 编译通过。在android工程上编译流程大同小异,在jni/Android.mk 中增加CPPFLAGS &#;= -DCRYPTOPP_DISABLE_ASM-DCRYPTOPP_DISABLE_SSE2在jni/Application.mk 中增加APP_STL := gnustl_staticAPP_CPPFLAGS := -frtti -fexceptions编译通过。写了个使用RC2算法编解码的程序测试一下:cRC2Test.h

推荐整理分享cocos2dx 使用 crypto++(cocos2d解密),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos2d怎么用,cocos2d schedule,cocos2d解密,cocos2d怎么用,cocos2dx 使用什么语言写脚本,cocos2dx 使用canvas,cocos2dx 使用语言,cocos2dx 使用curl,内容如对您有帮助,希望把文章链接给更多的朋友!

#include "rc2.h"

using namespace CryptoPP;

//RC2加密解密类

class cRC2Test

{

public:

//设置key

static void setKey(const unsigned char* pKey);

//加密

static std::string encode(conststd::string& rStr);

//解密

static std::string decode(conststd::string& rStr);

private:

//加密RC2块

static void encodeBlock(unsignedchar* pData, unsignedchar* pOut);

//解密RC2块

static void decodeBlock(unsignedchar* pData, unsignedchar* pOut);

private:

//RC2 key

staticunsigned charsm_cKey[RC2::DEFAULT_KEYLENGTH];

//RC2加密类

static RC2Encryption sm_rcEncr;

//RC2解密类

static RC2Decryption sm_rcDecr;

};

cRC2Test.cpp

#include<vector>

#include<string>

using namespacestd;

//静态变量定义

unsigned char cRC2Test::sm_cKey[RC2::DEFAULT_KEYLENGTH] = {0,};

RC2EncryptioncRC2Test::sm_rcEncr;

RC2DecryptioncRC2Test::sm_rcDecr;

void cRC2Test::setKey(const unsigned char* pKey)

{

memset(sm_cKey,0,sizeof(sm_cKey));

//保存key

memcpy(sm_cKey,pKey, RC2::DEFAULT_KEYLENGTH);

//对加密器与解密器设置key&#;

sm_rcEncr.SetKey(sm_cKey, RC2::DEFAULT_KEYLENGTH);

sm_rcDecr.SetKey(sm_cKey, RC2::DEFAULT_KEYLENGTH);

}

std::stringcRC2Test::encode(conststd::string& rStr)

{

size_t strIndex =0;

size_t strLen =rStr.size();

//保存加密后的数据

vector<unsignedchar> vBuffer;

//保存加密后的临时数据块

cocos2dx 使用 crypto++(cocos2d解密)

unsigned char rcBlock[RC2::BLOCKSIZE];

unsigned char *ptr = (unsigned char*)rStr.c_str();

//遍历字符串

while(strIndex <strLen) {

memset(rcBlock,0, RC2::BLOCKSIZE);

//加密一块数据

encodeBlock(&ptr[strIndex],rcBlock);

//保存加密结果

vBuffer.insert(vBuffer.end(), rcBlock, rcBlock&#;RC2::BLOCKSIZE);

strIndex &#;= RC2::BLOCKSIZE;

}

return string(vBuffer.begin(), vBuffer.end());

}

std::stringcRC2Test::decode(conststd::string& rStr)

{

size_t strIndex =0;

size_t strLen =rStr.size();

//保存解密后的数据

vector<unsignedchar> vBuffer;

//保存解密后的临时数据块

unsigned char rcOut[];

unsigned char *ptr = (unsigned char*)rStr.c_str();

//遍历字符串

while(strIndex <strLen) {

memset(rcOut,0, sizeof(rcOut));

//解密一块数据

decodeBlock(&ptr[strIndex],rcOut);

//保存解密结果

vBuffer.insert(vBuffer.end(), rcOut, rcOut&#;strlen((char*)rcOut));

strIndex &#;= RC2::BLOCKSIZE;

}

return string(vBuffer.begin(), vBuffer.end());

}

voidcRC2Test::encodeBlock(unsignedchar* pData, unsignedchar* pOut)

{

sm_rcEncr.ProcessBlock(pData, pOut);

}

voidcRC2Test::decodeBlock(unsignedchar* pData, unsignedchar* pOut)

{

sm_rcDecr.ProcessBlock(pData, pOut);

}

测试代码:main.cpp

unsigned char pkey[RC2::DEFAULT_KEYLENGTH];

stringtestData = "测试";

cRC2Test::setKey(pkey);

stringsEncode = cRC2Test::encode(testData);

cout<<cRC2Test::decode(sEncode);

在ios与android上测试通过。

版权声明:本文为博主原创文章,未经博主允许不得转载。

cocos2dx AudioEngine初体验,音效播放结束判断测试 由于simpleAudioEngine在播放音效时无法获取状态也无法在播放完成后回调,造成音效在按键频繁时发声重叠。改mac版本的库对目前的我来说挑战难度太大。

Cocos2d-3.x_在Lua中使用cjson库解析json prename=codeclass=cppboolAppDelegate::applicationDidFinishLaunching(){autoengine=LuaEngine::getInstance();//注册cjsonLuaStack*stack=engine-getLuaStack();luaopen_lua_extensions_cjson(stack-getLuaStat

实现了个类似blood brothers中的转轴特效 最近比较忙,有一段时间没写东西了,今天算是忙里偷闲,分享点东西。在美区有个游戏叫bloodbrothers,玩了玩,感觉还不错,其中有一个页面,可以选

标签: cocos2d解密

本文链接地址:https://www.jiuchutong.com/biancheng/368362.html 转载请保留说明!

上一篇:quick-cocos2d-x如何在mac下编译安卓版本

下一篇:cocos2dx AudioEngine初体验,音效播放结束判断测试

  • 公司不开票要交工会经费吗
  • 什么是调账的依据
  • 发票替代票
  • 盘亏的设备按正常报废处理是否符合会计制度要求
  • 批量转账和代发工资
  • 法人投入投资款
  • 个体工商户税收起征点是多少?
  • 借款可以转注资款吗
  • 借别人的公账转账犯法吗
  • 增值税税收返还资料
  • 合伙企业缴纳税款时间
  • 开票商品名称是什么意思
  • 报关单出口退税联模板
  • 本月出口下月开发票可以吗
  • 更换金税盘后数据能恢复么
  • 普通发票费用会计分录
  • 个人购买房屋的税
  • 研发费用需要发什么科目
  • 企业所得税期间费用明细表
  • 办理核定企业所需资料
  • 未抵扣的进项税在资产负债表里怎么填
  • 跨期费用审计调整分录
  • 专利技术使用权转让属于特许权使用费
  • 以前年度记账错误
  • 资源税计税依据含不含增值税
  • 自产自用的产品用于在建工程
  • 开具的服务费怎么做分录
  • 企业所得税征收标准
  • 经营租入的设备能够确认为资产吗
  • 付给他人押金的会计分录
  • win10显示无法连接蓝牙
  • php stl
  • 发票未认证丢失怎么补办
  • 增值税怎样计算
  • 实现php框架系列功能
  • 建筑业预缴增值税
  • 工商年报纳税总额包括滞纳金吗
  • 元宇宙与nft
  • 使用灭火器时要对准火焰的什么部位喷射
  • 办完外经证怎么交税
  • 资产账面价值大于计税基础产生递延所得税负债
  • 织梦作坊的微博
  • 库房食品过期报告怎么写
  • 税费退库怎么做账
  • 境外汇款收款人承担手续费
  • 增值税买票卖票
  • 财务预算资产负债表如何编制
  • 企业原材料成本占比
  • 年度利润总额的英文缩写
  • 计提坏账准备金是什么意思
  • 电费发票开据后如何入帐?
  • 软件企业确认收入
  • 进口增值税与关税的关系
  • 投资收益科目在借方
  • 客运服务费发票计入什么科目
  • 非本公司员工能否享受本公司的福利
  • 餐饮业厨师的工资计入主营业务成本吗
  • 账户设置的三种情况
  • 注册资本和实收股本的区别
  • 建筑会计账务
  • mysql的基本介绍
  • mysql 5.7启动
  • win 10预览版
  • mac显示所有窗口的快捷键
  • 恢复注册表的方法
  • xp系统如何获取ip地址
  • mac文本编辑怎么删除
  • safeplugin是什么软件
  • win8如何删除登录密码
  • Linux查看文件内容编码
  • win8个性化外观恢复默认设置
  • python双循环题
  • Eclipse开发工具安装
  • using kernel
  • linux触控
  • 用js实现导航栏的下拉列表
  • javascript常见问题
  • flask框架官方文档
  • 济宁税务大厅上班时间
  • 深圳龙华区税务局大浪税务所电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设