Windows平台下利用CSP來實現加密保護

來源:互聯網
上載者:User
CSP是Cryptographic Service Provider的簡寫,是微軟專為 Windows系列作業系統制定的底層加密介面,用於管理硬體或軟體形式的加密裝置,實現資料加密、解密,數位簽章、驗證和資料摘要 (即 HASH)等。   本例實現了幾方面的操作   1.對容器的操作 包括建立,開啟,關閉,銷毀容器. Provider可以對應於一個硬體UKey或者軟體虛擬容器,微軟提供了幾個預設的Provider,每個Provider裡面都可以包含若干容器(Container). 微軟提供的Provider: PROV_RSA_FULL PROV_RSA_SIG PROV_DSS PROV_DSS_DH PROV_FORTEZZA PROV_MS_EXCHANGE PROV_RSA_SCHANNEL PROV_SSL PROV_EC_ECDSA_SIG PROV_EC_ECNRA_SIG PROV_EC_ECDSA_FULL PROV_EC_ECNRA_FULL PROV_SPYRUS_LYNKS PROV_RNG PROV_INTEL_SEC 2.產生隨機數 3.在容器中產生密鑰,包括RSA加密金鑰對,RSA簽名金鑰組. 4.RSA加密非對稱式加密用於加密少量,對安全性要求比較高的資料. 5.簽名,驗簽,RSA公開金鑰的匯出(可以用於驗證簽名).用於驗證身份. 6.HASH,HMAC.用於驗證資料完整性 7.對稱加解密.加密資料,速度快. 8.保護本機資料:不需要CSP控制代碼,和容器無關,產生只能在本機才能解密的資料.可以防止本機資料被Copy.   9 這裡有一種方法比較有意思 有一個這樣的需求,我會調用一些函數,然後希望每次調用後彈出彈出資訊告訴我此次調用的函數名字,調用結果 a)定義一個函數,負責彈出資訊,它輸入參數為函數名字和函數的返回結果 VOID CCSPDlg::PopupMessage(LPCTSTR lpFunction, BOOL bResult, BOOL bAddLastErrorMsg/*= TRUE*/) {     CString strInfo;     TCHAR szErrMsg[MAX_PATH] = {0};     if(bAddLastErrorMsg)         SSOSGetCodeDesc(::GetLastError(), szErrMsg, SS_DIMOF(szErrMsg), NULL);     if(bResult)     {         strInfo.Format(_T("Execute %s Success.\r\n %s"),lpFunction, szErrMsg);     }else     {         strInfo.Format(_T("Execute %s Failed.\r\n %s"),lpFunction, szErrMsg);     }     AfxMessageBox(strInfo); } b)定義一個宏 #define CALL_FUNC_OF_RLT_BY_BOOL(F) PopupMessage(TEXT(#F), F)   c)應用情境     CALL_FUNC_OF_RLT_BY_BOOL( (m_hCryptProv = SSCSPCreateContainer(NULL, NULL)) != NULL);     CALL_FUNC_OF_RLT_BY_BOOL(SSCSPCloseContainer(m_hCryptProv));   SOURCE CODE : http://download.csdn.net/detail/patdz/4280531
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.