Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A AesGcm címkeméretet nem elfogadó konstruktorok elavultak, a .NET 8-tól kezdve:
A kódban való meghívás figyelmeztetést SYSLIB0053 generál fordításkor.
A kényszer okának oka
Az AES-GCM a platformtól függően különböző hosszúságú címkéket támogat, 12 és 16 bájt között. Korábban az AesGcm osztály a címke méretétől függően határozza meg a kívánt címkeméretet. Ha például Decrypt egy 14 bájtos címkével lett meghívva, feltételezték, hogy a címke 14 bájt.
Az AES-GCM azonban csonkolással támogatja ezeket a különböző hosszokat. Az AES-GCM natív módon 16 bájtcímkét állít elő, a rövidebb címkék pedig a címke csonkolásával jönnek létre.
Ha a hívók Decrypt() lekérik a címkét a bemenetből, és átadják a címkét, az hatékonyan lehetővé teszi Decrypt() a lehető legrövidebb címkével való használatát, ami csökkenti a címke tényleges méretét.
Annak érdekében, hogy a fogyasztók meggyőződhessenek arról, hogy a megfelelő méretű címkéket használják, új konstruktorokat AesGcm vezettünk be, amelyekhez a várt címke méretének előre történő deklarálása szükséges. Decrypt()A Encrypt() megadott címkeparaméternek a konstruktorban deklarált méretnek kell megfelelnie.
Áthidaló megoldás
A címkeméretet elfogadó új konstruktorok a .NET 8-ban lettek hozzáadva. Használja inkább az alábbi konstruktorok egyikét:
Figyelmeztetés mellőzése
Ha az elavult API-kat kell használnia, letilthatja a figyelmeztetést a kódban vagy a projektfájlban.
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz, hogy letiltsa, majd engedélyezze újra a figyelmeztetést.
// Disable the warning.
#pragma warning disable SYSLIB0053
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0053
Ha el szeretné tiltani a SYSLIB0053 projekt összes figyelmeztetését, adjon hozzá egy tulajdonságot <NoWarn> a projektfájlhoz.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0053</NoWarn>
</PropertyGroup>
</Project>
További információ: Figyelmeztetések mellőzése.