摘要:http://blog.csdn.net/wzq9706/article/details/8133314最近在研空Sqlite加密算法,东拼西凑,还没研究出AES怎么用,欢迎指正,交流1.从官方下载最新版本的Sqlite目前www.sqlite.org是:如sqlite-amalgamation-3071401.zip2.在VS中添加一个空项目3.解压sqlite-amalgamation-3071401.zip复制出里面的sqlite3.h和sqlite3.c文件,放在工程目录中,并添加到工程4.在工程中添加"sqlite3crypt.h",并添加以下代码#ifndef
阅读全文
摘要:现象与原因采用上面的方法对数据库进行加密,存在页面尺寸错乱的问题。在SQLite的DB文件中,第16、17两个字节的值表示数据库中每个页的大小,SQLite规定页大小必须是512的倍数,如果加密算法恰好导致这两个字节的值为512的倍数,且与数据库的实际页面大小不一样,就会导致不能进行数据库操作。其原因是在sqlite3_open()函数中,会读取DB文件头,从16、17字节得到页大小,但是sqlite3_open()函数中没有调用解密函数,因此得到的就是错误的值。一般来说,采用的加密算法不会导致16、17这两个字节恰好是512的倍数,在SQLite内部有保护,如果这个数据不是512的倍数,或者
阅读全文
摘要:采用上一节的方法为SQLite添加了加密解密功能后,使用方法如下:1、在调用sqlite3_open()函数打开数据库后,要调用sqlite3_key()函数为数据库设置密码;2、如果数据库之前有密码,则调用sqlite3_key()函数设置正确密码才能正常工作;3、如果一个数据库之前没有密码,且已经有数据,则不能再为其设置密码;4、如果要修改密码,则需要在第一步操作后,调用sqlite3_rekey()函数设置新的密码;5、设置了密码的SQLite数据库,无法使用第三方工具打开;具体使用的示例代码如下:#include#include#include"sqlite3.h"
阅读全文
摘要:上面的代码是从网上下载下来的,它使用的SQLite版本比较旧,因此在SQLite 3.7.13下编译不通过,下面需要对编译错误和警告逐一修正。编译信息原因与修改方法'Pager' has no member named 'pCodecArg'在3.7.13版本中,Pager的成员变量pCodecArg名称修改为pCodec,因此用到pCodecArg变量的地方修改为使用pCodec。too few arguments to function 'sqlite3PagerPagecount'原来sqlite3PagerPagecount()函数用返回
阅读全文
摘要:把crypt.c中实现的加密解密函数挂接到sqlite3.c中,并且实现前面编译提示的未实现的函数。在sqlite3.c的最后一行的后面,添加如下代码:#ifdefSQLITE_HAS_CODEC#include"crypt.h"/***加密结构***/#defineCRYPT_OFFSET 8typedefstruct_CryptBlock {BYTE* ReadKey; // 读数据库和写入事务的密钥BYTE* WriteKey; // 写入数据库的密钥intPageSize; // 页的大小BYTE* Data;} CryptBlock, *LPCryptBlock;
阅读全文
摘要:先不用管上面的编译错误,创建crypt.c和crypt.h,用来实现加密解密函数和相应接口的定义。crypt.c里实现了加密解密函数,代码如下:#include"crypt.h"#include"memory.h"/***********关键加密函数***********/intMy_Encrypt_Func(unsignedchar* pData,unsignedintdata_len,unsignedchar* key,unsignedintlen_of_key){unsignedinti;unsignedcharbit, val;for(i = 0
阅读全文
摘要:首先要在sqlite3.c中最前面,添加代码(网上有说在sqlite3.h中添加也可,实际测试在sqlite3.h中打开该宏是无效的):#ifndefSQLITE_HAS_CODEC#defineSQLITE_HAS_CODEC#endif这个宏是用来确定是否支持加密的。添加上述代码后编译,会出现如下错误:D:\Research\MySQLite\Debug/../src/sqlite3.c:80963: undefined reference to `sqlite3CodecAttach'D:\Research\MySQLite\Debug/../src/sqlite3.c:8096
阅读全文
摘要:SQLite数据库支持加密和解密,但是免费版没有这个功能,不过网上已经有相关的资料,不过这些资料都不是基于SQLite 3.7.13版本的,这里根据网上找到的最全的资料进行整理,实现了SQLite 3.7.13版数据库的加密解密。本系列文章对此进行了详细说明。开发环境:操作系统Win 7IDEEclipse Juno (4.2) CDT编译器MinGW GCC 4.6.2SQLite3.7.13本文出自 “rainman” 博客,请务必保留此出处http://lancelot.blog.51cto.com/393579/940805来源:http://lancelot.blog.51cto.c
阅读全文
摘要:http://bbs.2ccc.com/topic.asp?topicid=337891今天刚好改风铃兄的sqlite,随便说说,不对的请大家指正.sqlite3PagerSetCodec变化非常大staticvoidsqlite3PagerSetCodec(Pager*pPager,void*(*xCodec)(void*,void*,Pgno,int),void(*xCodecSizeChng)(void*,int,int),//新加的void(*xCodecFree)(void*),//新加的void*pCodec//对应原来的pCodecArgxCodecSizeChng更改page大
阅读全文
摘要:http://www.sqlite.com.cn/MySqlite/6/407.Html前序:一、版本二、基本编译三、SQLITE操作入门(1)基本流程(2)SQL语句操作(3)操作二进制(4)事务处理四、给数据库加密五、后记前序:Sqlite3的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对sqlite3的研究列出来,以备忘记。这里要注明,我是一个跨平台专注者,并不喜欢只用windows平台。我以前的工作就是为unix平台写代码。下面我所写的东西,虽然没有验证,但是我已尽量不使用任何windows的东西,只使用标准C或标准C++。
阅读全文
摘要:http://www.sqlite.com.cn/MySqlite/6/409.Html4.事务处理sqlite是支持事务处理的。如果你知道你要同步删除很多数据,不仿把它们做成一个统一的事务。通常一次sqlite3_exec就是一次事务,如果你要删除1万条数据,sqlite就做了1万次:开始新事务->删除一条数据->提交事务->开始新事务->…的过程。这个操作是很慢的。因为时间都花在了开始事务、提交事务上。你可以把这些同类操作做成一个事务,这样如果操作错误,还能够回滚事务。事务的操作没有特别的接口函数,它就是一个普通的sql语句而已:分别如下:int result;re
阅读全文
摘要:http://www.sqlite.com.cn/MySqlite/6/410.Html/***下面是编译时提示缺少的函数***//**这个函数不需要做任何处理,获取密钥的部分在下面DeriveKey函数里实现**/voidsqlite3CodecGetKey(sqlite3* db,intnDB,void** Key,int* nKey){return;}/*被sqlite和sqlite3_key_interop调用,附加密钥到数据库.*/intsqlite3CodecAttach(sqlite3 *db,intnDb,constvoid*pKey,intnKeyLen);/**这个函数好像
阅读全文
摘要:http://www.sqlite.com.cn/MySqlite/6/411.Htmlintsqlite3_key(sqlite3 *db,constvoid*pKey,intnKey){returnsqlite3_key_interop(db, pKey, nKey);}intsqlite3_rekey(sqlite3 *db,constvoid*pKey,intnKey){returnsqlite3_rekey_interop(db, pKey, nKey);}/*被sqlite和sqlite3_key_interop调用,附加密钥到数据库.*/intsqlite3CodecAttach
阅读全文
摘要:现在大多时候在Linux上做服务器端开发,使用VC的机会少了很多。VC编程时习惯上会间个小工程去测试一些小段代码,确保正确后在移植到真正的工程上去。自觉这是个好习惯,决定继续沿用。公司开发环境不提供VC,自己也懒得动用复杂的IDE,想想还是启用nmake。研究了一番nmake的makefile规则,编写了了一个通用makefile。用下来还相当好用。存个档,作个分享交流。#宏定义EXE= test.exe#指定输出文件名OBJS= main.obj #需要的目标文件;个人习惯把测试代码写在main.cpp,所以这里相应的OBJ文件是main.objRES=#需要的资源文件,如 test.res
阅读全文
摘要:写了一个编译静态库和动态库的Makefile文件,修改Makefile中STATIC的值可以编译静态库或动态库。完整的程序和Makefile文件在这里。MakefileSTATIC=0LIBPATH=libCFLAGS=-WallLDFLAGS=-I$(LIBPATH) -L$(LIBPATH) -lfuncifeq ($(STATIC), 1)LIB=$(LIBPATH)/libfunc.aelseLIB=$(LIBPATH)/libfunc.soCFLAGS+=-fPICendifTARGET=mainSRC=main.cLIBSRC=libinc.c libdec.cLIBOBJ=$(a
阅读全文
摘要:SQLite 简介SQLite是非常优秀的跨平台数据库引擎。与最常见的需要服务进程的数据库引擎(如MySQL)不同,SQLite 引擎不是独立的进程,而是与主程序编译在一起、并运行在同一个进程空间中的代码。数据的存取则是通过程序内直接调用其API实现的,整个数据库都在宿主主机上存储在一个单一的文件中。这些使得 SQLite 在读写效率、消耗总量、延迟时间和整体简单性上具有很大的优越性。最为重要的的是,整个 SQLite 引擎是一个相对小规模的轻量级 C 语言库。理论上说,任何平台,只要有 C 语言编译器,SQLite 就能够移植到该平台上。又由于其轻量性,SQLite 成为了处理器性能、内存容
阅读全文
摘要:myAes.h文件为了方便使用从别人的C语言版本上封装的(C语言版本),如果有什么不对,请帮忙指正出来,自身对加密并不是很懂原文地址:http://blog.csdn.net/wzq9706/article/details/8119112//// myAes.h// //// Created by X on 12-10-27.// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.//#ifndef __myAes__H__#define __myAes__H__#include #ifndef uint8#defin...
阅读全文
摘要:I am not sure if C source code of aes implement is OK for you.Here is a link you can download an AES sourcehttp://www.cis.syr.edu/~wedu/seed/Labs/IPSec/files/libcrypt.tarThe aes.c and aes.h in folder libcrypt are what we need. The aes_demo.c under demo folder gives us a demo how to use it.Now, we ha
阅读全文
摘要:我的blog中,已经写过一篇关于aes加密算法的调用。不过使用的参数必须时unsigned char类型。我们在编程中使用最多的char类型,我从网上下载了一个代码,追加了一部分代码。 其主要功能进行实现unsigned char类型数据到char类型转化,将unsigned char结果与16进制字符串串之间的转化。代码如下:点击(此处)折叠或打开#ifndef AES_H#define AES_H#includeclassAES{public:AES(unsigned char*key);virtual~AES();unsigned char*Cipher(unsigned char*in
阅读全文
摘要:Encryption.h文件#import @class NSString; @interface NSData (Encryption) - (NSData *)AES256EncryptWithKey:(NSString *)key; //加密- (NSData *)AES256DecryptWithKey:(NSString *)key; //解密- (NSString *)newStringInBase64FromData; //追加64编码+ (NSString*)base64encode:(NSString*)str; //同上6...
阅读全文
摘要:Himi 原创, 欢迎转载,转载请在明显处注明! 谢谢。 原文地址:http://blog.csdn.net/xiaominghimi/article/details/6937097//——2012-6-25日更新iap恢复看到很多童鞋说让Himi讲解如何恢复iap产品,其实博文已经给出了。这里再详细说下:首先向AppStore请求恢复交易:1[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];然后当用户输入正确的appStore账号密码后,进入- (void)paymentQueue:(SKPaymentQueu...
阅读全文
摘要:Game Center的高级开发是建立多人实时联网的比赛。开发者可以选择使用Game Center提供的服务器来运行游戏,或者使用自己的服务器来作数据并发。由于我的案例是选择了前者,所以本文只对使用Game Center提供的服务器来介绍。在Game Center中可以有选择地邀请好友,或者让服务器自己来寻找匹配的玩家。如果是邀请好友,首先两者必须在Game Center中是互为好友的关系,这样在邀请发出之后,好友就会收到一个Notification的邀请。一旦选择接受游戏,那么双方就会建立一个连接,当各方都成功连接之后,游戏就可以开始了。如果选择的是让Game Center自动寻找匹配玩家,
阅读全文
摘要:原文GameCenter 为单机游戏为主的 iPhone 游戏平台引入了社会化特性,更为将来的网游、多人竞技等游戏打下了基础。下面是 CocoaChina 会员 “ljg420811” 总结的 GameCenter 使用指南,包括 GameCenter 的设置和代码实现。1. iTunes Connect 设置 首先,申请一个应用程序,不必提交.目地是为了得到Bundle ID. 然后设置一下工程中Info.plist的Bundle identifier使之与iTunes Connect中的Bundle ID相同,否则当你尝试登录GameCenter的时候,会提示一个不支持GameCenter
阅读全文
摘要:文/李成,郑鑫移动互联网浪潮正在彻底改变人们日常的生活习惯和生活方式。相应的,基于移动终端和感应交互的游戏,也为人们带来了全新的游戏体验。本文,我们将结合目前流行的cocos2d-x引擎,使用C++语言,基于iOS平台,和大家分享iPhone、iPad上游戏客户端的构架与实现。游戏架构与实现目前,很多基于cocos2d-x的代码基本上仅是对引擎功能的使用,完全不能按照游戏项目的标准来参考。作为游戏项目代码,不仅需要实现游戏的诸多功能,还需要从架构层面,从模块设计的角度来思考和设计,使代码具有更好的复用性和拓展性。对于游戏客户端,按照功能模块的区别可分为:引擎封装层模块、游戏数据管理模块、应用程
阅读全文
摘要:登录iTurns Connect时:Apple ID does not have permission to access iTunes Connect先登入到Member Center,然后,点击Your account,Update your profile,把Apple ID修改成原来的ID后保存。然后可以了。
阅读全文
摘要:如果你是一个开发团队,在你打算掏腰包购买iOS开发者授权之前,最好先问一下你的同事,是否已经有人获得了开发许可,因为一个开发许可一年内最多可以授权给111个设备来开发测试。如果你没有授权许可可以借用,或者你打算最终在iTunes Store中以自己的名义发布你的应用,那么就准备一张国际信用卡,准备支付99美元来申请一个iOS开发者授权。点击下面链接进入Apple Developer Centerhttp://developer.apple.com/点击页面左边中部的iOS Dev Center进入iOS开发中心点击页面顶部右侧的Register按钮,然后点击Get Started按钮进入申请流
阅读全文
摘要:如何使用iOS开发者授权以及如何申请证书http://www.adobe.com/cn/devnet/flash/articles/ios_tutorial_3_pro_cert.html上一篇我介绍了如何申请成为合法的iOS开发者,这篇文章会详细介绍如何使用授权文件(.mobileprovision)和签名证书文件(.cer)在缴费成功后会收到一份来自Apple Developer Suport的确认邮件,如下图.在邮件里有一个Login按钮,点击后可以进入Apple Developer会员中心。点击图中的iOS Provisioning Portal,进入开发者授权设置系统。在设置界面中,
阅读全文
摘要:这个是证书,我们先从这里一次开始向下 一步一步的配置。点这里,会下载一个.cer的证书文件下来。。。然后双击这个下载下来的证书,安装到登录钥匙串。。。看到没有? 这个就是安装好后的证书。这个证书就不用管了。。。接着来点击 钥匙串 - 》证书助理 - 从证书机构请求证书,然后下一步 下一步。。。 最后在桌面生成一个证书。吧证书提交到网站上就可以了。开始添加ios设备,这个很简单。。左边随便写个名字,右边在xcode中得到序列号:这个是创建apple id,也很简单。名字随便写。下面的按照格式写公司标示符。我们现在做最后一步的配置,手机证书的配置:名字随意取。然后是第一步配置的证书,然后是appl
阅读全文
摘要:----从申请账号到appstore发布要想在iphone上安装自己开发的app程序,有两种方法可以实行:1、越狱后自己安装;2、成为iosdeveloper并发布自己的程序,所有人都可以安装。固然,越狱有很多方便之处,可以从网络中搜集各种不同的程序安装到自己的iphone上,但越狱也会有些地方令人遗憾:繁琐、不安全。越狱的步骤是繁琐的,而越狱,是将自己iphone的诸多权限开放给未经appstore审核的程序,等于将自己的手机暴露给app开发者,所以,如果不幸安装了恶意的程序,他也许会将你手机中的一些隐私信息泄露出去。话说回来,对于开发者来说,不将程序发布到appstore上,只靠越狱后的途
阅读全文
摘要:原文地址:http://tie.youdao.com/st_3979529905881611380对于真机调试,首先要在苹果网站上注册APP ID,以及购买iPhone Develop Program(iDP) 开发者授权,99美元。然后要创建证书请求CSR,创建步骤如下:设置OCSP和CRL为关闭状态。Mac OS 中,打开应用程序,找到钥匙串访问(Keychain Access)工具打开主菜单-证书助理(Certificate Assistant)-从证书代理请求证书(Request a Certificate From a Certificate Authority)输入iDP注册时的e
阅读全文
摘要:免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!原文链接地址:http://www.raywenderlich.com/3276/how-to-make-a-simple-multiplayer-game-with-game-center-tutorial-part-12程序截图: 我正在实验以一种新的方式来撰写教程--通过采纳你们的建议来写教程! 在网站右边,你会发现一个新的区域,在那里,你们可以通过投票的方式来决定下一篇教程是什么。(..
阅读全文
摘要:[Cocos2d-x相关教程来源于红孩儿的游戏编程之路 CSDN博客地址:http://blog.csdn.net/honghaier]红孩儿Cocos2d-X学习园地QQ群:249941957 加群写:Cocos2d-x另本章为我的Cocos2d-x教程一书初稿。望各位看官多提建议! 本节所用Cocos2d-x版本:cocos2d-1.0.1-x-0.12.0 我在之前的“如何利用Cocos2d-x开发一个游戏?”。在实际的项目开发过程中,工具是支撑开发流程规范的必要条件。一套好的工具可以使工作流程顺畅。从而极大的提高效率。我们知道Unity3d场景编辑器就是一个很好的例子。它将游戏开发..
阅读全文
摘要:glColor4f(0.0f, 0.0f, 0.0f, 0.35f); // 设置为Array glDisable(GL_TEXTURE_2D); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_COLOR_ARRAY); GLfloat *vertices = malloc(2 * sizeof(GLfloat) * (angle + 1)); vertices[0] = 0; verti...
阅读全文