CMD または Powershell を介して暗号化された安全なランダム バイトを提供できる Windows 上のデバイスまたは実行可能ファイルはありますか?

CMD または Powershell を介して暗号化された安全なランダム バイトを提供できる Windows 上のデバイスまたは実行可能ファイルはありますか?

/dev/urandom本質的には、 Linux 上のWindows と同等のものを探しています。

C++ API 経由で Wi​​ndows CNG を使用できることはわかっていますが、コマンドライン経由で最新の Windows システム上のランダム バイトにアクセスできる (移植可能な) メソッドがあるかどうかはわかりません。

答え1

.NETで使用できるもの(C#など)はすべてPowerShellでも使用できます。これには以下が含まれます。暗号化.乱数ジェネレータクラス。(.NET Core 2.xでは、このクラスはCNG経由で実装されています。BCryptGenRandom()WindowsではOpenSSLRAND_バイト()Linuxでは、AppleCryptoCCRandomGenerateBytes()macOS の場合。

$bytes = New-Object byte[](8)
$rng = [System.Security.Cryptography.RandomNumberGenerator]::Create()
$rng.GetBytes($bytes)

(コードは以下から改変)暗号取得ランダム.ps1Microsoft の「スクリプト センター」から。元のスクリプトはRNGCryptoServiceProviderクラスを使用しますが、これはほぼ同じものですが、古い .NET 1.x ランタイム バージョンでは使用できません。

関連情報