2

我目前正在尝试了解如何最好地在 .NET 4.0 C# 环境中实现签名/验证。

我的要求是能够在我的系统中作为一个“用户”对数据进行签名,稍后该数据需要由消费者验证。

为了做到这一点,我正在尝试使用证书,但是这是我开始挣扎的地方。我感到困惑的一个方面是,有人建议我可以使用 DPAPI 进行证书管理,但是从阅读 DPAPI 文档来看,它似乎只为本地主机/用户提供了一种保护/取消保护任意数据的方法。尽管此数据可能恰好是私钥,但它并没有专门处理证书。

第一个问题是,DPAPI 是否以任何方式链接到本地​​证书存储或其他证书管理解决方案?

希望代码不必查找证书,而只需将数据传递给有用的 API,在该 API 中对其进行签名(在数据源上)或验证(在消费者上)。

任何意见表示赞赏。

4

1 回答 1

1

DPAPI 用于加密仅在同一 Windows 用户帐户下才能解密的数据。它使用对称加密算法,因此无法提供您需要的签名功能。

如果您希望提供签名功能,那么使用基于公钥-私钥对(公钥分布在证书中)的签名算法通常是合适的方法。.NET BCL 确实为签名和验证部分提供了功能(包括使用来自本地证书存储的密钥),但它不会帮助您处理密钥分发方面的事情。

于 2012-01-20T15:19:25.117 回答