使用 Visual C++创建Crypto加/解密组件简介
这篇文章将教你如何使用 Visual C++ 和 ATL 工具和 Microsoft CryptoAPI 建立一个能加/解密数据的组件。
Crypto 101 本文使用Microsoft® Cryptographic Application Programming Interface (CryptoAPI),将苦涩难懂的逻辑算法操作隐藏起来,如果想知道详细信息请参看MSDN Library.如果想知道更多的密码系统,我推荐你看看这本书
Applied Cryptography: Protocols, Algorithms, and Source Code in CBruce Schneier's
建立组件
首先,用"ATL COM AppWizard”建立一个新project。在这个例子中,我将其命名为”CryptoProj”。在 server type中选择”Dynamic Link Library (DLL)”,点按”Finish”继续。
定义界面
在 insert 菜单中点按"New ATL Object...",选择 “Simple Object”,然后按 Next。
在 “Names” 栏中,设 short name 为 “Crypto”,其他项照下面的填写。
在 Attributes栏,确定 Apartment Threading Model 被选上,Support IsupportErrorInfo 选项勾上,然后按 OK.
按右键点击 Icrypto ,点”Add Method”加一个方法.
将该方法取名为”Encrypt”,在参数栏输入"[in] BSTR bstrPlainText, [in] BSTR bstrPassword, [out, retval] VARIANT *vCipherText".
再加一个方法,取名为”Decrypt”,参数为"[in] VARIANT vCipherText, [in] BSTR bstrPassword, [out, retval] BSTR *bstrPlainText"
实现加密方法
需要包括 CryptoAPI 库,在 Crypto.cpp 头加一句:
关键词:运用 Visual C++创建Crypto加/解密组件