位置: 编程技术 - 正文

cocos2dx 使用 crypto++(cocos2d解密)

发布时间:2024-02-27
在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初体验,音效播放结束判断测试

  • 小规模纳税人场地租赁
  • 申报个税需要扣除公积金和社保吗
  • 小微企业的企业所得税税收优惠政策
  • 小规模企业所得税税率多少
  • 2019年所得税季度增值税怎么报
  • 中小企业免税证明
  • 财务软件计提所得税分录
  • 可以不用附原始凭证的记账凭证是
  • 施工企业增值税纳税地点
  • 厂开办期间的工作有哪些
  • 企业所得税税收优惠方式有哪些
  • 什么叫记载资金的账簿
  • 可税前扣除的捐赠支出
  • 发票拍照打印出来能用吗
  • 纳税能力体现的内容
  • 劳务报酬和个人工资的区别
  • a公司转给b公司投资款的会计分录
  • 小规模纳税人适用的增值税征收率
  • 企业结业后实收资本怎么处理?
  • 增值税怎么调平
  • 没有进项发票的货物能算成本吗
  • windows10如何显示桌面图标
  • Uncaught TypeError: XXX is not a function问题解决方法
  • php最好的编程语言
  • 增值税防伪税控系统
  • 税收返还会计核算
  • water gardens
  • 长期股权投资期末按什么计量
  • 任意盈余公积金的用途
  • 增值税退税是否属于政府补助
  • 未开票收入本月未收款的分录
  • 不用财务软件的公司要去吗
  • php curl_init
  • 隐藏index.html
  • 性能优化有什么用
  • axios和ajax的关系
  • php中文字符串截取
  • 管理费用包括哪些部门的工资
  • 客运公司做账怎么做
  • 减资如何弥补亏损
  • 什么是资产减值准备计提
  • 没开票的工程可以结转成本吗
  • 会计备案报送期间
  • 个体户一直未申请怎么办
  • 暂估入账是什么意思
  • 企业注销时实收资本没有到位要紧吗
  • 发票验真伪需要盖章吗
  • 工程项目成本管理实论
  • 新公司成立的文案
  • 未开票收入如何计提增值税
  • 发票入账需要哪些附件的文件
  • 进项税额转出是借方科目还是贷方科目
  • 2018年所得税税收优惠
  • 存货入库无法查明原因的短缺
  • 存货计提存货跌价准备
  • 品牌代理费计入什么科目
  • 实缴发票和月结发票知乎
  • 预收款退回怎么处理
  • 酒店房间消耗品成本
  • 旅游服务小规模差额税率
  • 企业注销其他应付款怎么处理账务
  • 32位操作系统不能玩cf
  • windos8怎么样
  • ubuntu16安装vnc
  • 从哪里看windows是多少位的
  • msoobe.exe是什么
  • debian linux教程
  • Cocos2dx3.2 CrazyTetris 物理引擎使用初步
  • qt绘制3d
  • 鼠标焦点离开触发查询
  • 备份多个数据库
  • linux查看shell脚本内容
  • javascript填表
  • JavaScript+html5 canvas制作的百花齐放效果完整实例
  • js操作对象的方法
  • 利用ctypes提高Python的执行速度
  • 预征率是2%怎么计算
  • 领导班子和领导干部评议意见表
  • 汽车销售环节要做什么
  • 新一轮税制改革的背景是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号