C# RSA 加密算法

标签 c# cryptography

C#“RSACryptoServiceProvider”加密算法是 Microsoft-CryptoAPI 的一部分吗?

  1. 通过在 .Net 中使用 CryptoAPI 而不是“RSACryptoServiceProvider”,我们对正常的非对称加密有什么优势?
  2. 我不明白它们之间的区别?哪个最好最安全? 你能帮忙吗?

谢谢

卡尔提克

最佳答案

CryptoAPI(通常缩写为“CAPI”)是一组基于 C 的 API,应用程序(在 Windows 下)可以使用它来访问加密服务。特别是,使用 key 的加密操作(例如 RSA 加密)被委托(delegate)给称为“CSP”(加密服务提供商)的可插入模块。 CSP 自行执行加密操作。从概念上讲,只有 CSP 知道 key 的实际位置 ;它可以被视为存储 key 的(虚拟或真实)硬件的驱动程序。

RSACryptoServiceProvider类是 .NET 的一部分,并提供对计算 RSA 的 CSP 的访问。该类是一组 .NET 类的一部分,这些类是 CryptoAPI 的一种 .NET 对应物。

RSACryptoServiceProvider 是您在 .NET 世界中使用的;大多数时候,往返 C 世界以调用 CryptoAPI 以最终使用相同 CSP 看起来像是一个多余的并发症。此外,RSACryptoServiceProvider 喜欢使用 RSA 签名和加密消息的标准(大端)表示法,这与 CryptoAPI 相反,后者“反转”字节。

关于C# RSA 加密算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2682476/

相关文章:

c# - 呈现 ModalView 时出现 NSInvalidArgumentException

c# - 将文件保存到数据库中

c# - WebClient 403 禁止访问

java - 从 HTTP POST 计算 HMAC 而无需将整个请求主体复制到内存中

c# - Bouncy CaSTLe C# 中的 PBKDF2

c# - 创建一个隐藏 C# 中 int 值的安全哈希

MFC 应用程序中的 C# 控件

c# - 如何为 PropertyDescriptor 定义类级属性以对 BindingList 进行排序?

c - 如何制作确定性随机数生成器?

Javascript:使用 crypto.getRandomValues 生成一个范围内的随机数