在Microsoft CNG API(加密API:下一代)中,有兩組功能看起來可以做同樣的事情。CNG:何時使用BCrypt *和NCrypt *系列功能
以下功能開始BCrypt
和執行密鑰導入/導出,加密/解密,簽名/驗證和迪菲 - 赫爾曼密鑰交換
BCryptExportKey
BCryptImportKey
BCryptEncrypt
BCryptDecrypt
BCryptSignHash
BCryptVerifySignature
BCryptSecretAgreement
BCryptDeriveKey
但同一組的功能存在與NCrypt
開始:
NCryptExportKey
NCryptImportKey
NCryptEncrypt
NCryptDecrypt
NCryptSignHash
NCryptVerifySignature
NCryptSecretAgreement
NCryptDeriveKey
這兩組函數之間有什麼區別,以及每個函數何時應該使用?
由於舊的CSP非常有限,所以不直觀,但它以某種方式迫使強大的密鑰存儲機制。然而用NCrypt *密鑰存儲有點奇怪!例如爲了得到一個短暫的關鍵你仍然需要調用NCryptCreatePersistedKey ..該NCrypt以某種方式試圖mems PKCS11,但真的在一個非常奇怪的方式,遠非直觀..因此容易出錯 – Ibrahim