Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Från och med .NET 10 är alla konstruktorer på System.Security.Cryptography.Rfc2898DeriveBytes föråldrade. Att anropa dessa konstruktorer i kod genererar en varning SYSLIB0060 vid kompileringstillfället.
Orsak till obsoletion
Den instansbaserade implementeringen av PBKDF2, som System.Security.Cryptography.Rfc2898DeriveBytes tillhandahåller, erbjuder en icke-standardanvändning genom att strömma tillbaka byte och tillåta efterföljande anrop till GetBytes. Detta är inte den avsedda användningen av PBKDF2; algoritmen ska användas i en engångsanvändning. Engångsfunktionaliteten finns som den statiska metoden Rfc2898DeriveBytes.Pbkdf2 och bör användas istället för att instansiera System.Security.Cryptography.Rfc2898DeriveBytes.
Lösning
Byt ut instanser av System.Security.Cryptography.Rfc2898DeriveBytes och anrop till GetBytes så att du använder Rfc2898DeriveBytes.Pbkdf2:s statiska engångsanropsmetod istället.
Ändra till exempel:
using System.Security.Cryptography;
Rfc2898DeriveBytes kdf = new Rfc2898DeriveBytes(password, salt, iterations, hashAlgorithm);
byte[] derivedKey = kdf.GetBytes(64);
till
byte[] derivedKey = Rfc2898DeriveBytes.Pbkdf2(password, salt, iterations, hashAlgorithm, 64);
Undertrycka en varning
Om du måste använda det föråldrade API:et kan du utelämna varningen i koden eller i projektfilen.
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och återaktiverar sedan varningen.
// Disable the warning.
#pragma warning disable SYSLIB0060
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0060
Om du vill ignorera alla SYSLIB0060 varningar i projektet lägger du till en <NoWarn>-egenskap i projektfilen.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0060</NoWarn>
</PropertyGroup>
</Project>
Mer information finns i Utelämna varningar.