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

我的要求是能够以一个“用户”的身份在系统中签名数据,此后某个时刻需要由使用者验证数据。

为此,我尝试使用证书,但这是我开始努力的地方。我困惑的一个方面是,我被告知可以使用DPAPI进行证书管理,但是从阅读DPAPI文档看,它似乎仅提供了一种保护/取消保护本地主机/用户的书本数据的方法。尽管此数据可能恰好是私钥,但它并不专门处理证书。

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

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

任何意见表示赞赏。

最佳答案

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

如果您希望提供签名功能,则通常使用基于公私钥对(在证书中分布公钥)的签名算法。 .NET BCL确实提供了用于签名和验证部分的功能(包括使用本地证书存储中的密钥),但是它在密钥分发方面没有帮助。

关于c# - 使用DPAPI签名和验证数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8939124/

10-11 02:03
查看更多