‘SHA256Managed’ is obsolete: ‘Derived cryptographic types are obsolete
By FoxLearn 1/9/2025 2:43:01 AM 38
Warning SYSLIB0021 'SHA512Managed' is obsolete: 'Derived cryptographic types are obsolete. Use the Create method on the base type instead.'
The code that triggers this warning looks like this:
using System.Text; using System.Security.Cryptography; public static string ToSHA512(string s) { SHA512Managed sha512 = new SHA512Managed(); StringBuilder hash = new StringBuilder(); byte[] hashArray = sha512.ComputeHash(Encoding.UTF8.GetBytes(s)); foreach (byte b in hashArray) { hash.Append(b.ToString("x")); } return hash.ToString(); }
This warning appears because the classes SHA256Managed
, SHA512Managed
, SHA1Managed
, and SHA384Managed
have been deprecated. These are now replaced with SHA256
, SHA512
, SHA1
, and SHA384
, respectively.
To resolve the warning, you should replace the SHA512Managed
class with its updated version.
using System.Text; using System.Security.Cryptography; public static string ToSHA512(string s) { using (SHA512 sha512 = SHA512.Create()) { StringBuilder hash = new StringBuilder(); byte[] hashArray = sha512.ComputeHash(Encoding.UTF8.GetBytes(s)); foreach (byte b in hashArray) { hash.Append(b.ToString("x")); } return hash.ToString(); } }
Both versions (the deprecated and the updated one) will return the same result.
// Deprecated version, do not use in .NET Core 6 and newer private static string SHA1_Old(string s) { SHA1Managed sha1 = new SHA1Managed(); StringBuilder hash = new StringBuilder(); byte[] hashArray = sha1.ComputeHash(Encoding.UTF8.GetBytes(s)); foreach (byte b in hashArray) { hash.Append(b.ToString("x")); } return hash.ToString(); } // New version for .NET Core 6 and newer private static string SHA1_New(string s) { using (SHA1 sha1 = SHA1.Create()) { StringBuilder hash = new StringBuilder(); byte[] hashArray = sha1.ComputeHash(Encoding.UTF8.GetBytes(s)); foreach (byte b in hashArray) { hash.Append(b.ToString("x")); } return hash.ToString(); } }
- How to fix 'Failure sending mail' in C#
- How to Parse a Comma-Separated String from App.config in C#
- How to convert a dictionary to a list in C#
- How to retrieve the Executable Path in C#
- How to validate an IP address in C#
- How to retrieve the Downloads Directory Path in C#
- C# Tutorial
- Dictionary with multiple values per key in C#
Categories
Popular Posts
Freedash bootstrap lite
11/13/2024
SB Admin Template
11/17/2024
Plus Admin Dashboard Template
11/18/2024
Material Dashboard Admin Template
11/17/2024