Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ab .NET 11 sind die Methoden RSACryptoServiceProvider.Encrypt(Byte[], Boolean) und RSACryptoServiceProvider.Decrypt(Byte[], Boolean) veraltet. Beim Aufrufen dieser Methoden im Code wird zur Kompilierzeit eine Warnung SYSLIB0064 generiert.
Grund für die Obsoleszenz
Wenn der fOAEP Parameter lautet true, verwenden diese Methoden immer SHA-1 als Digestalgorithmus für optimalen asymmetrischen Verschlüsselungsabstand (OAEP). Der Hashalgorithmus ist implizit und kann nicht geändert werden. Verwenden Sie stattdessen Überladungen, die ein explizites RSAEncryptionPadding Argument annehmen. Diese Überladungen machen den Hashalgorithmus explizit, bieten Ihnen mehr Flexibilität, wenn Sie einen Hashalgorithmus auswählen, und helfen Ihnen, die versehentliche Verwendung von OAEP-SHA-1 zu vermeiden. Wenn Sie OAEP benötigen, bevorzugen Sie RSAEncryptionPadding.OaepSHA256 oder eine stärkere Option, anstatt standardmäßig zu RSAEncryptionPadding.OaepSHA1 zu migrieren, es sei denn, Sie benötigen SHA-1 aus Gründen der Kompatibilität.
Workaround
Ersetzen Sie Aufrufe der veralteten Überladungen durch die entsprechenden Überladungen, die ein RSAEncryptionPadding Argument akzeptieren:
| Veralteter Anruf | Ersetzung |
|---|---|
Encrypt(data, fOAEP: true) |
Encrypt(data, RSAEncryptionPadding.OaepSHA1) |
Encrypt(data, fOAEP: false) |
Encrypt(data, RSAEncryptionPadding.Pkcs1) |
Decrypt(data, fOAEP: true) |
Decrypt(data, RSAEncryptionPadding.OaepSHA1) |
Decrypt(data, fOAEP: false) |
Decrypt(data, RSAEncryptionPadding.Pkcs1) |
Unterdrücken einer Warnung
Wenn Sie die veraltete API verwenden müssen, können Sie die Warnung im Code oder in der Projektdatei unterdrücken.
Um nur einen einzelnen Verstoß zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Warnung zu deaktivieren und dann wieder zu aktivieren.
// Disable the warning.
#pragma warning disable SYSLIB0064
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0064
Um alle SYSLIB0064-Warnungen in Ihrem Projekt zu unterdrücken, fügen Sie ihrer Projektdatei eine <NoWarn>-Eigenschaft hinzu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0064</NoWarn>
</PropertyGroup>
</Project>
Weitere Informationen finden Sie unter Unterdrücken von Warnungen.