what password net learn dotnet aprendiendo cryptography .net-core

cryptography - password - RNGCryptoServiceProvider en.Net Core



learn net core (2)

No puedo encontrar la clase System.Security.Cryptography.RNGCryptoServiceProvider en .NetCore.

Es esencial para la aplicación que estoy tratando de portar desde .Net Framework, ya que se utiliza para generar un vector de inicialización para el cifrado.

¿Existe con un nombre diferente o hay otra forma de lograr esta funcionalidad?



System.Security.Cryptography.RandomNumberGenerator es la clase base para implementaciones criptográficamente seguras de generador de números pseudoaleatorios (CSPRNG). En .NET Framework, RandomNumberGenerator.Create() devuelve una instancia RNGCryptoServiceProvider (a menos que RNGCryptoServiceProvider lo configure de manera diferente). En .NET Core RandomNumberGenerator.Create() devuelve un tipo opaco que se basa en BCryptGenRandom (Windows) o en el generador de números aleatorios de OpenSSL (! Windows).

RandomNumberGenerator.Create() es la única forma de obtener una instancia de RNG en .NET Core, y dado que funciona tanto en .NET Core como en .NET Framework es la opción más portátil.

Por supuesto, si está generando un IV, también puede simplemente llamar al método de instancia SymmetricAlgorithm.GenerateIV() para que use el CSPRNG internamente; aunque como dice la documentación, no es necesario llamarlo porque se crea un IV aleatorio con la instancia (se puede usar GenerateIV para forzarlo a generar uno nuevo antes de la próxima llamada a CreateEncryptor ).