Microsoft CryptoAPI加密技術

2021-06-18 00:47:02 字數 942 閱讀 2490

上次我們講了microsoft cryptoapi的構成以及會話金鑰的使用。接下來我們將看一下公私金鑰對的使用、hash演算法、數字簽名等技術。

一、 公用金鑰加密技術

公用金鑰加密技術使用兩個不同的金鑰:公鑰和私鑰。私鑰必須安全的保管好不能被外人知道,而公鑰可以告訴任何人,只要他需要。通常公鑰是以數字證書的形式發布的。

用公私金鑰對中的乙個金鑰加密的資料只能用金鑰對中的另乙個金鑰才能解密。也就是說用使用者a的公鑰加密的資料只能用a的私鑰才能解密,同樣,用a的私鑰加密的資料只能用a的公鑰才能解密。

如果用私鑰簽名乙個訊息,那麼必須用與之對應的公鑰去驗證簽名的有效性。

不幸的是公用金鑰加密技術的效率非常低甚至只有對稱加密的千分之一,所以不適合對大量的資料進行加密。實際上,公用金鑰加密技術一般用來加密會話金鑰,而資料加密可以用對稱加密的方法。

好了,讓我們回到microsoft cryptoapi。我們知道乙個csp有乙個金鑰庫,這個金鑰庫有乙個或多個金鑰容器。而金鑰容器中有什麼呢?一般來說,乙個金鑰容器中有兩對公私金鑰對,一對用來加密會話金鑰,而另一對用來進行數字簽名,也就是大家知道的key exchange key pair和signature key pair。

那麼,怎麼得到這些金鑰對呢?

if(cryptgetuserkey(

hcryptprov,           // 我們已經得到的csp控制代碼

at_signature,          // 這裡想得到signature key pair

&hkey))             // 返回金鑰控制代碼

else    //取signature key pair錯誤

else

}else

} // end if將引數at_signature換成at_keyexchange就可以得到key exchange key pair。

資料加密技術

1.1.在傳統上,我們有幾種方法來加密資料流 1.2.幸運的是,在所有的加密演算法中最簡單的一種就是 置換表 演算法 1.3.對這種 置換表 方式的乙個改進就是使用2個或者更多的 置換表 1.4.與使用 置換表 相類似,變換資料位置 也在計算機加密中使用 1.5.但是,還有一種更好的加密演算法,只有...

檔案加密技術

檔案加密技術 給檔案加密的技術很多,其中又分為不同等級,以適合不同場合的需要.這裡給出最簡單的檔案加密技術,即採用檔案逐字節與密碼異或方式對檔案進行加密,當解密時,只需再執行一遍加密程式即可.編乙個例項程式,能對任意乙個檔案進行加密,密碼要求使用者輸入,限8位以內 當然你可以再更改 程式要有很好的容...

php加密技術

1.效果展示 php中常用的加密函式 1.md5加密 string md5 string str bool raw output false 1 md5 預設情況下以 32 字元十六進製制數字形式返回雜湊值,它接受兩個引數,第乙個為要加密的字串,第二個為raw output的布林值,預設為false...