解析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
如果你證書庫中有證書,證書名正確的話就可以看到加密和解密的文件。
小結:解析Lua調用C++證書加密解密文件函數實現的內容介紹完了,希望通過本文的學習能對你有所幫助!