如何确定密钥上 Azure.Security.KeyVault.Keys.Cryptography.CryptographyClient.Decrypt 的加密算法

How to determine the Encryption Algorithm for Azure.Security.KeyVault.Keys.Cryptography.CryptographyClient.Decrypt on Keys

CryptographyClient requires EncryptionAlgorithm for the Decrypt操作。我如何确定我在 OpenSSL 中创建的自签名密钥或任何密钥使用什么?

EncryptionAlgorithm 提供 enum 价值

  1. Rsa15
  2. RsaOaep
  3. RsaOaep256

如果我已经使用 OpenSSL 创建了自签名 RSA 密钥,我该如何从以上选择?

这些算法是加密算法,不是密钥类型。您应该使用哪种取决于您的应用程序。 Rsa15(算法“RSA1_5”)很旧,不推荐用于安全应用程序。 RsaOaep(算法“RSA-OAEP”)可能更高效,但使用 SHA-1 进行散列,因此 RsaOaep256(算法 (RSA-OAEP-256) 使用 SHA-256 更安全。

您可以从各种来源(包括维基百科)了解这些算法。

在适用于 C# 的 Key Vault SDK 中,如果您在本地拥有密钥 material(例如用于加密的 public 密钥),我们也会在本地支持这些算法,因为这些相同的算法在本地也受支持。某些算法可能并不总是受支持,例如 .NET Framework 4.6.1 上的 EC 密钥将抛出 NotSupportedException.