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

2021-06-06 06:24:26 字數 1240 閱讀 5688

csp是cryptographic service provider的簡寫,是微軟專為

windows系列作業系統制定的底層加密介面,用於管理硬體或軟體形式的加密裝置,實現資料加密、解密,數字簽名、驗證和資料摘要

(即 hash)等。

本例實現了幾方面的操作

1.對容器的操作

包括建立,開啟,關閉,銷毀容器.

provider可以對應於乙個硬體ukey或者軟體虛擬容器,微軟提供了幾個預設的provider,每個provider裡面都可以包含若干容器(container).

微軟提供的provider:

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*/) ;

if(baddlasterrormsg)

ssosgetcodedesc(::getlasterror(), szerrmsg, ss_dimof(szerrmsg), null);

if(bresult)

else

afxmessagebox(strinfo); }

b)定義乙個巨集

#definecall_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 :

windows平台下利用Nginx做負載均衡

2.執行cmd命令start nginx啟動nginx服務 192.168.199.104 8081 192.168.199.104 8082 192.168.199.104 8083 4.配置nginx.conf 伺服器的集群 upstream netitcast.com 當前的nginx的配置 ...

Windows平台下安裝NLTK

在網上找了一圈,沒找到幾個靠譜的安裝流程,在上找到各平台下安裝流程 windows平台 以下操作假定你的機器上還沒有安裝python,如果你已經安裝python,請跳過最後一步,只需要安裝nltk。32位二進位製版安裝 1.安裝python 選擇2.7.3版本。2.安裝numpy 可選 3.安裝nl...

Lua Socket在Windows平台下的使用

lua的乙個比較實用的拓展庫 lua socket 在windows 下平台的使用。在網上檢視了許多關於lua socket的安裝,發現大部分都是在 linux 下的安裝,關於在 windows 平台下的使用說明很少,而且發現問題挺多。本文將介紹乙個極其簡單的方式介紹 lua socket 在win...