Gibt es unter Windows ein Gerät oder eine ausführbare Datei, die kryptografisch sichere Zufallsbytes über CMD oder Powershell bereitstellen kann?

Gibt es unter Windows ein Gerät oder eine ausführbare Datei, die kryptografisch sichere Zufallsbytes über CMD oder Powershell bereitstellen kann?

Im Wesentlichen suche ich nach dem Windows-Äquivalent für /dev/urandomLinux.

Ich weiß, dass ich Windows CNG über die C++-APIs verwenden kann, habe aber keine Ahnung, ob es auf einem modernen Windows-System eine verfügbare (portable) Methode gibt, um über die Befehlszeile auf zufällige Bytes zuzugreifen.

Antwort1

Alles, was Sie über .NET verwenden können (z. B. C#), können Sie auch über PowerShell verwenden. Dazu gehört auch dieKryptographie.ZufallszahlenGeneratorKlasse. (In .NET Core 2.x wird diese Klasse über CNG implementiertBCryptGenRandom()unter Windows, OpenSSLRAND_bytes()unter Linux, AppleCryptoCCRandomGenerateBytes()unter macOS.)

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

(Code angepasst vonCryptoGetRandom.ps1aus Microsofts „Script Center“. Das Originalskript verwendet die RNGCryptoServiceProviderKlasse, die fast dasselbe ist, aber in alten .NET 1.x-Runtime-Versionen nicht verfügbar ist.)

verwandte Informationen