最近研究的成功终于有了点结果,暂时大体上实现了用C++实现用证书加密解密文件。主要是使用到window的API Cryptography里面提供的方法实现证书的加密解密等操作。证书主要是查找Window的证书库(把证书文件导入到IE中就可以了),我这里是使用CertOpenStore函数打开MY证书库(这个MY可以是别的值,具体看你的需求,详细可以在MSDN中找到这个方法),然后使用CertFindCertificateInStore函数查找在MY证书库中证书(这个方法有个参数是需要指定使用的证书名,参数名:pvFindPara),如果在MY证书库中找到指定的证书就可以往下执行加密解密等操作了,这里不多说,具体的看后面的代码。具体环境配置可以看我的上一篇博客。
这里还需要配置一个地方,就是设置Peoject的编码.
具体配置:右键Project->property->Configuration Properties->General->Project Defaults->Character Set ,这里选择Use Unicode Character Set,设置Project为unicode的编码.
具体的代码可以查看附件中的源码,里面有注释!
示例环境:Visual C++ 2008 Express Edition + Lua5.1 + SciTE(安装Lua自带)
附件介绍(使用Visual C++ 2008打开):
1.在附件中有2个Project,分别是:unicode 和 crypto.
2.运行本例子需要将unicode和crypto两个Project都Build。
3.然后在当前Project下的Debug目录下分别把unicode.dll和crypto.dll两个文件copy到lua文件同级。
4.以上完成后可以用SciTE打开附件中Lua文件夹下 .lua 文件,修改证书名。不知道证书名可以打开IE->工具->Internet选项->内容->证书->个人(只能是个人,因为在程序中写死了L"MY"),然后双击你要使用的证书,打开对话框后就可以看到"颁发给",或者去详细信息->主题,下面的CN就是证书名。
5.运行lua
如果你证书库中有证书,证书名正确的话就可以看到加密和解密的文件。
分享到:
相关推荐
在lua中,通常需要通过调用C或C++编写的库来实现操作系统级别的功能,如获取进程和窗口信息。在本案例中,可能使用了名为"lt.dll"的动态链接库(DLL),这是一个能够与lua交互并提供此类功能的组件。DLL文件可以包含...
- 在Cocos2d-lua中,可能需要编写额外的lua脚本来调用C++的加密解密功能,这通常通过tolua++这样的绑定工具完成。 总的来说,XXTEA加密工具在Cocos2d-x和Cocos2d-lua项目中提供了对资源和代码的保护,通过提供的...
源代码通常包括AES的加密和解密函数实现,可能使用C、C++、Python等编程语言编写。这些函数会接受明文或密文作为输入,以及一个预定义的密钥,然后按照AES的标准流程执行加密或解密操作。验证部分的代码则用于确保...
编写测试脚本,验证加密解密的正确性和性能,以确保在实际应用中达到预期效果。 在实际开发过程中,可能会遇到各种问题,如兼容性、性能优化等。例如,Windows平台的线程安全问题、加密算法的选择与优化、错误处理...
回调函数是在特定事件发生时由库自动调用的函数。在OpenSSL中,回调函数常用于错误处理、日志记录等场景。例如,通过设置错误回调函数可以自定义错误处理逻辑。 #### 二、OpenSSL简介 **2.1 OpenSSL简介** ...
通常,开发者需要定义一个包含四个整数的数组作为加密的明文,然后调用XXTEA的加密和解密函数进行处理。例如,`xxtea_encrypt`和`xxtea_decrypt`函数分别用于加密和解密数据。 3. 加密资源:在游戏资源打包前,可以...
4. **遍历资源**:遍历项目中所有的.js和.json文件,逐一调用加密函数进行加密。注意,这个过程应当覆盖所有需要保护的游戏资源和脚本。 5. **处理引用**:在Cocos2dx项目中,资源和脚本之间可能存在引用关系。加密...
在这个文件中,我们可以期待找到XorLua的核心功能实现,如XOR加密解密的算法,以及如何将这个功能集成到Lua环境中的代码。 在使用XorLua时,开发者可能需要了解如何编写加密和解密的Lua脚本,以及如何在自己的应用...
Lua的C API使得它能够轻松地与C/C++代码交互,通过luaL_loadstring或luaL_dofile加载和执行Lua脚本,同时可以调用C/C++编写的函数,实现二者的无缝对接。 四、Lua的模块系统和库支持 Lua虽然小巧,但通过第三方库...
Cocos2dx是一款开源的游戏开发框架,它基于C++,并提供了Lua和JavaScript的绑定,使得开发者能够方便地创建2D和3D游戏。在游戏开发过程中,数据资源的管理和加载是至关重要的部分,其中就包括了文件的压缩和解压缩。...