4

有一组 CryptoApi 函数可与加密服务提供商 (CSP) 一起使用。

CPAcquireContext
CPCreateHash
CPDecrypt
CPDeriveKey
CPDestroyHash
CPDestroyKey
CPDuplicateHash
CPDuplicateKey
CPEncrypt
CPExportKey
CPGenKey
CPGenRandom
CPGetHashParam
CPGetKeyParam
CPGetProvParam
CPGetUserKey
CPHashData
CPHashSessionKey
CPImportKey
CPReleaseContext
CPSetHashParam
CPSetKeyParam
CPSetProvParam
CPSignHash
CPVerifySignature

是的,我知道有 System.Cryptography 命名空间。但我不需要他们的实现。

是否有任何现成的库为这些函数提供 .NET 包装器?

4

2 回答 2

3

MSDN上有一篇关于这个主题的扩展文章:

使用 CAPICOM 和 P/Invoke 扩展 .NET 加密

一篇关于使用.Net中的CryptoAPI 证书存储的文章。

从这篇博客文章中提取的一些 P/Invoke 声明显示了它的 p/Invoke 定义:

[snip] 代码示例对于 SO [/snip] 来说太大了

于 2011-07-07T13:42:16.583 回答
1

我认为您最好的选择是使用 P/Invoke 将功能拉入您的 C# 应用程序。这是 MSDN 上关于在 C# 中使用 P/Invoke 和 CryptoAPI 的(旧)文章:

使用 CAPICOM 和 P/Invoke 扩展 .NET 加密

它适用于 .Net 1.1,但概念仍然相同。

于 2011-07-07T13:38:26.253 回答