解析Lua調(diào)用C++證書加密解密文件函數(shù)實(shí)現(xiàn)
Lua調(diào)用C++證書加密解密文件函數(shù)實(shí)現(xiàn)是本文要介紹的內(nèi)容,最近研究的成功終于有了點(diǎn)結(jié)果,暫時(shí)大體上實(shí)現(xiàn)了用C++實(shí)現(xiàn)用證書加密解密文件。主要是使用到window的API Cryptography里面提供的方法實(shí)現(xiàn)證書的加密解密等操作。
證書主要是查找Window的證書庫(把證書文件導(dǎo)入到IE中就可以了),我這里是使用CertOpenStore函數(shù)打開MY證書庫(這個(gè)MY可以是別的值,具體看你的需求,詳細(xì)可以在MSDN中找到這個(gè)方法),然后使用CertFindCertificateInStore函數(shù)查找在MY證書庫中證書(這個(gè)方法有個(gè)參數(shù)是需要指定使用的證書名,參數(shù)名:pvFindPara),如果在MY證書庫中找到指定的證書就可以往下執(zhí)行加密解密等操作了,這里不多說,具體的看后面的代碼。具體環(huán)境配置可以看我的上一篇博客。
這里還需要配置一個(gè)地方,就是設(shè)置Peoject的編碼.
具體配置:右鍵
- Project->property->Configuration Properties->General->Project Defaults->Character Set
這里選擇Use Unicode Character Set,設(shè)置Project為unicode的編碼.
具體的代碼可以查看附件中的源碼,里面有注釋!
示例環(huán)境:Visual C++ 2008 Express Edition + Lua5.1 + SciTE(安裝Lua自帶)
附件介紹(使用Visual C++ 2008打開):
1、在附件中有2個(gè)Project,分別是:unicode 和 crypto.
2、運(yùn)行本例子需要將unicode和crypto兩個(gè)Project都Build。
3、然后在當(dāng)前Project下的Debug目錄下分別把unicode.dll和crypto.dll兩個(gè)文件copy到lua文件同級(jí)。
4、以上完成后可以用SciTE打開附件中Lua文件夾下 .lua 文件,修改證書名。不知道證書名可以打開IE->工具->Internet選項(xiàng)->內(nèi)容->證書->個(gè)人(只能是個(gè)人,因?yàn)樵诔绦蛑袑懰懒薒"MY"),然后雙擊你要使用的證書,打開對(duì)話框后就可以看到"頒發(fā)給",或者去詳細(xì)信息->主題,下面的CN就是證書名。
5、運(yùn)行l(wèi)ua
如果你證書庫中有證書,證書名正確的話就可以看到加密和解密的文件。
小結(jié):解析Lua調(diào)用C++證書加密解密文件函數(shù)實(shí)現(xiàn)的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!