SYSLIB0060: Rfc2898DeriveBytes-constructors zijn verouderd
Vanaf .NET 10 zijn alle constructors op System.Security.Cryptography.Rfc2898DeriveBytes verouderd. Als u deze constructors aanroept in code, wordt er een waarschuwing gegenereerd SYSLIB0060
tijdens het compileren.
Reden voor veroudering
De op exemplaar gebaseerde implementatie van PBKDF2, die System.Security.Cryptography.Rfc2898DeriveBytes biedt, biedt een niet-standaardgebruik door bytes terug te streamen door het toestaan van opeenvolgende aanroepen naar GetBytes
. Dit is niet het beoogde gebruik van PBKDF2; het algoritme moet worden gebruikt als een eenmalige handeling. De one-shot functionaliteit bestaat als de statische methode Rfc2898DeriveBytes.Pbkdf2 en moet worden gebruikt in plaats van het instantiëren van System.Security.Cryptography.Rfc2898DeriveBytes.
Tijdelijke oplossing
Wijzig voorvallen van System.Security.Cryptography.Rfc2898DeriveBytes en aanroepen van GetBytes
om in plaats daarvan de éénmalige statische methode Rfc2898DeriveBytes.Pbkdf2 te gebruiken.
Bijvoorbeeld:
using System.Security.Cryptography;
Rfc2898DeriveBytes kdf = new Rfc2898DeriveBytes(password, salt, iterations, hashAlgorithm);
byte[] derivedKey = kdf.GetBytes(64);
naar
byte[] derivedKey = Rfc2898DeriveBytes.Pbkdf2(password, salt, iterations, hashAlgorithm, 64);
Een waarschuwing onderdrukken
Als u de verouderde API moet gebruiken, kunt u de waarschuwing in code of in het projectbestand onderdrukken.
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de waarschuwing uit te schakelen en vervolgens opnieuw in te schakelen.
// Disable the warning.
#pragma warning disable SYSLIB0060
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0060
Als u alle SYSLIB0060
waarschuwingen in uw project wilt onderdrukken, voegt u een <NoWarn>
eigenschap toe aan het projectbestand.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0060</NoWarn>
</PropertyGroup>
</Project>
Zie Waarschuwingen onderdrukkenvoor meer informatie.