.NetCoreでSystem.Security.Cryptography.RNGCryptoServiceProviderクラスが見つかりません。.Net CoreのRNGCryptoServiceProvider
私は、暗号化のための初期化ベクトルを生成するために使用されているので、私は.Net Frameworkから移植しようとしているアプリケーションに不可欠です。
この名前は別の名前で存在するのですか、それともこの機能を実現する別の方法ですか?提案ソリューションの
.NetCoreでSystem.Security.Cryptography.RNGCryptoServiceProviderクラスが見つかりません。.Net CoreのRNGCryptoServiceProvider
私は、暗号化のための初期化ベクトルを生成するために使用されているので、私は.Net Frameworkから移植しようとしているアプリケーションに不可欠です。
この名前は別の名前で存在するのですか、それともこの機能を実現する別の方法ですか?提案ソリューションの
つRandomNumberGenerator.Createを(使用する場合)
https://github.com/dotnet/corefx/issues/2881System.Security.Cryptography.RandomNumberGenerator
は暗号的に安全な疑似乱数生成器(CSPRNG)の実装の基本クラスです。 .NET FrameworkのRandomNumberGenerator.Create()
は、の設定が異なる場合を除き、RNGCryptoServiceProvider
インスタンスを返します。 .NETコアでRandomNumberGenerator.Create()
は、BCryptGenRandom(Windows)またはOpenSSLの乱数ジェネレータ(!Windows)に基づく不透明型を返します。
RandomNumberGenerator.Create()
は.NETコアでRNGインスタンスを取得する唯一の方法であり、.NET Coreと.NET Frameworkの両方で動作するため、最も移植性があります。
もちろん、IVを生成している場合は、インスタンスメソッドSymmetricAlgorithm.GenerateIV()
を呼び出して、CSPRNGを内部的に使用することもできます。ドキュメンテーションによれば、ランダムなIVがインスタンスと共に作成されるので、それを呼び出すことは不要です(GenerateIV
を使用して、次の呼び出しの前に新しいインスタンスを生成することができます。CreateEncryptor
)。
これはおそらく正解ですが、* why *を指定する必要があります。例えば。 'RandomNumberGenerator'は暗号で安全な乱数を返しますか?そしてもしそうなら、なぜ、どのように?リンクのみの回答は一般的には「悩まされる」ことに注意してください。 –