解析Lua调用C++证书加密解密文件函数实现
Lua调用C++证书加密解密文件函数实现是本文要介绍的内容,最近研究的成功终于有了点结果,暂时大体上实现了用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