SYSLIB0007: Şifreleme algoritmalarının varsayılan uygulamaları desteklenmez
.NET Framework'teki şifreleme yapılandırma sistemi düzgün şifreleme çevikliği sağlamaz ve .NET Core ve .NET 5+'ta mevcut değildir. . NET'in geriye dönük uyumluluk gereksinimleri, çerçevenin şifrelemedeki ilerlemelere ayak uydurmak için belirli şifreleme API'lerini güncelleştirmesini de yasaklar. Sonuç olarak, aşağıdaki API'ler .NET 5'te başlayarak eski olarak işaretlenir. Bu API'lerin kullanılması derleme zamanında ve PlatformNotSupportedException çalışma zamanında uyarı SYSLIB0007
oluşturur.
- System.Security.Cryptography.AsymmetricAlgorithm.Create()
- System.Security.Cryptography.HashAlgorithm.Create()
- System.Security.Cryptography.HMAC.Create()
- System.Security.Cryptography.KeyedHashAlgorithm.Create()
- System.Security.Cryptography.SymmetricAlgorithm.Create()
Geçici Çözümler
Önerilen eylem, artık kullanılmayan API'lere yapılan çağrıları, örneğin Aes.Create()belirli algoritmalar için fabrika yöntemlerine yapılan çağrılarla değiştirmektir. Bu, hangi algoritmaların örneklendiği üzerinde tam denetim sağlar.
Artık kullanılmayan API'leri kullanan .NET Framework uygulamaları tarafından oluşturulan mevcut yüklerle uyumluluğu sürdürmeniz gerekiyorsa, aşağıdaki tabloda önerilen değişiklikleri kullanın. Tablo, .NET Framework varsayılan algoritmalarından .NET 5+ eşdeğerlerine eşleme sağlar.
.NET Framework .NET Core / .NET 5+ uyumlu değiştirme Açıklamalar AsymmetricAlgorithm.Create() RSA.Create() HashAlgorithm.Create() SHA1.Create() SHA-1 algoritması bozuk olarak kabul edilir. Mümkünse daha güçlü bir algoritma kullanmayı göz önünde bulundurun. Daha fazla rehberlik için güvenlik danışmanınıza başvurun. HMAC.Create() HMACSHA1() çoğu modern uygulama için HMACSHA1 algoritması önerilmez. Mümkünse daha güçlü bir algoritma kullanmayı göz önünde bulundurun. Daha fazla rehberlik için güvenlik danışmanınıza başvurun. KeyedHashAlgorithm.Create() HMACSHA1() çoğu modern uygulama için HMACSHA1 algoritması önerilmez. Mümkünse daha güçlü bir algoritma kullanmayı göz önünde bulundurun. Daha fazla rehberlik için güvenlik danışmanınıza başvurun. SymmetricAlgorithm.Create() Aes.Create()
Uyarıyı gizleme
Eski API'leri kullanmanız gerekiyorsa, uyarıyı kodda veya proje dosyanızda gizleyebilirsiniz.
Yalnızca tek bir ihlali engellemek için, önişlemci yönergelerini kaynak dosyanıza ekleyerek uyarıyı devre dışı bırakın ve sonra yeniden etkinleştirin.
// Disable the warning.
#pragma warning disable SYSLIB0007
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0007
Projenizdeki tüm SYSLIB0007
uyarıları engellemek için proje dosyanıza bir <NoWarn>
özellik ekleyin.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0007</NoWarn>
</PropertyGroup>
</Project>
Daha fazla bilgi için bkz . Uyarıları gizleme.