Básicamente, estoy buscando el equivalente de Windows /dev/urandom
a Linux.
Sé que puedo usar Windows CNG a través de las API de C++, pero no tengo idea si hay un método disponible (portátil) para acceder a bytes aleatorios en cualquier sistema Windows moderno a través de la línea de comandos.
Respuesta1
Cualquier cosa que pueda usar a través de .NET (por ejemplo, C#) también puede usar a través de PowerShell, y esto incluyeCriptografía.RandomNumberGeneratorclase. (En .NET Core 2.x, esta clase se implementa mediante CNGBCryptGenRandom()en Windows, OpenSSLRAND_bytes()en Linux, AppleCryptoCCRandomGenerateBytes()en MacOS.)
$bytes = New-Object byte[](8)
$rng = [System.Security.Cryptography.RandomNumberGenerator]::Create()
$rng.GetBytes($bytes)
(Código adaptado deCriptoGetRandom.ps1del "Centro de secuencias de comandos" de Microsoft. El script original usa la RNGCryptoServiceProvider
clase, que es casi lo mismo pero no está disponible en versiones antiguas de tiempo de ejecución de .NET 1.x).