我目前正在尝试了解如何在.NET 4.0 C#环境中最好地实现签名/验证。
我的要求是能够作为一个“用户”在我的系统中对数据进行签名,在以后的某个时刻,数据需要由消费者进行验证。
为了实现这一点,我正在尝试使用证书,但这是我开始努力的地方。我困惑的一个方面是,有人建议我可以使用DPAPI进行证书管理,但是从阅读DPAPI文档来看,它似乎只提供了一种保护/取消保护本地主机/用户的任意数据的方法。尽管此数据可能恰好是私钥,但它并不专门处理证书。
第一个问题是,DPAPI是否以任何方式链接到本地证书存储库或其他证书管理解决方案?
希望代码不必定位证书,而是简单地将数据传递到有用的API,在API中对数据进行签名(在数据源上)或验证(在消费者上)。
如有任何意见,欢迎光临。
发布于 2012-01-20 23:19:25
DPAPI用于加密仅在同一Windows用户帐户下解密的数据。它使用对称加密算法,因此无法提供所需的签名功能。
如果您希望提供签名功能,那么使用基于公钥-私钥对(在证书中分发公钥)的签名算法通常是合适的方法。.NET BCL确实提供了签名和验证部分的功能(包括使用本地证书存储中的密钥),但它不会在密钥分发方面为您提供帮助。
https://stackoverflow.com/questions/8939124
复制相似问题