我有一个用于在代码中加密/解密数据的工作解决方案(如下),但是当我将项目升级到 时DOTNET6,RijndaelManaged 就变得过时了:
警告 SYSLIB0022“RijndaelManaged”已过时:“Rijndael 和 RijndaelManaged 类型已过时。使用 Aes 代替。
和
SYSLIB0023“RNGCryptoServiceProvider”已过时:“RNGCryptoServiceProvider 已过时”。要生成随机数,请使用 RandomNumberGenerator 静态方法之一。
现在我想将其更改为 Aes/RandomNumberGenerator,但希望保持输出的方式与原样相同。不幸的是,我不熟悉加密/解密。
有人可以帮助我重写当前的块以使用 Aes 来代替 - 或者至少帮助我如何改变它并保持公共方法以相同的方式工作?
我有完整的代码(它按原样工作)
using System.Security.Cryptography;
namespace MyApp;
internal static class AES
{
private static byte[] AES_Encrypt(byte[] bytesToBeEncrypted, byte[] passwordBytes)
{
byte[] encryptedBytes;
byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
using (MemoryStream ms = new())
{
using RijndaelManaged AES = new(); // This reports Warning SYSLIB0022 'RijndaelManaged' is obsolete: 'The Rijndael …Run Code Online (Sandbox Code Playgroud)