共用方式為


密碼編譯基本類型

CNG API 提供一組函式,可執行基本的密碼編譯作業,例如建立哈希或加密和解密數據。 如需這些函式的詳細資訊,請參閱 CNG 密碼編譯基本函式

CNG 會實作許多密碼編譯演算法。 每個演算法或演算法類別都會公開自己的基本 API。 可以同時安裝指定演算法的多個實作;不過,在任何指定時間,只有一個實作會是預設值。

CNG 中的每個演算法類別都會以基本路由器表示。 使用 CNG 基本函式的應用程式會在使用者模式中連結至路由器二進位檔 Bcrypt.dll,或在核心模式中 Ksecdd.sys,再呼叫函式。 各種路由器例程會管理所有演算法基本類型。 這些路由器會追蹤系統上所安裝的每個演算法實作,並將每個函式呼叫路由傳送至適當的基本提供者模組。

CNG 提供下列演算法類別的基本類型。

演算法類別 描述
隨機數產生器
插入式隨機數產生 (RNG) 。
哈希
用於哈希的演算法,例如SHA1和SHA2。
對稱式加密
用於對稱加密的演算法,例如 AES、3DES 和 RC4。
非對稱式加密
支援加密的非對稱式(公鑰)演演算法,例如 RSA。
簽章
DSA 和 ECDSA 等簽章演算法。 這個類別也可以與 RSA 搭配使用。
秘密合約
秘密協議演算法,例如 Diffie-Hellman(DH)和橢圓曲線 Diffie-Hellman(ECDH)。

下圖顯示 CNG 密碼編譯基本類型的設計和功能。

cng 密碼編譯基本類型的設計與功能

頭檔 Bcrypt.h 會將 MS_PRIMITIVE_PROVIDER 常數定義為 “Microsoft Primitive Provider”。 若要使用 Microsoft Primitive Provider,請將此值傳遞至 BCryptOpenAlgorithmProvider