Sdílet prostřednictvím


SYSLIB0053: AesGcm by měl označit požadovanou velikost značky.

Konstruktory AesGcm , které nepřijímají velikost značky, jsou zastaralé počínaje rozhraním .NET 8:

Volání v kódu generuje upozornění SYSLIB0053 v době kompilace.

Důvod obsoletion

AES-GCM podporuje v závislosti na platformě značky různých délek od 12 do 16 bajtů. AesGcm Dříve by třída určila požadovanou velikost značky na základě velikosti samotné značky. Například pokud Decrypt byla volána se značkou 14 bajtů, předpokládá se, že značka měla být 14 bajtů.

AES-GCM však podporuje tyto různé délky zkrácením. AES-GCM nativně vytváří 16 bajtových značek a kratší značky se vytvářejí zkrácením značky.

Pokud volající Decrypt() získá značku ze vstupu a předá značku tak, jak je, umožní Decrypt() se efektivně použít s nejkratší možnou značkou, která zmenší efektivní velikost značky.

Aby uživatelé mohli zajistit, aby používali značky správné velikosti, byly zavedeny nové konstruktory AesGcm , které vyžadují deklarování velikosti očekávané značky předem. Decrypt()Zadaný Encrypt() parametr značky musí odpovídat velikosti deklarované v konstruktoru.

Alternativní řešení

Do .NET 8 byly přidány nové konstruktory, které přijímají velikost značky. Místo toho použijte jeden z těchto konstruktorů:

Potlačení upozornění

Pokud musíte použít zastaralá rozhraní API, můžete potlačit upozornění v kódu nebo v souboru projektu.

Chcete-li potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, které chcete zakázat a znovu povolit upozornění.

// Disable the warning.
#pragma warning disable SYSLIB0053

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0053

Pokud chcete potlačit všechna SYSLIB0053 upozornění v projektu, přidejte <NoWarn> do souboru projektu vlastnost.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0053</NoWarn>
  </PropertyGroup>
</Project>

Další informace naleznete v tématu Potlačení upozornění.