Essencialmente, estou procurando o equivalente do Windows /dev/urandom
no Linux.
Eu sei que posso usar o Windows CNG por meio das APIs C++, mas não faço ideia se existe um método disponível (portátil) para acessar bytes aleatórios em qualquer sistema Windows moderno por meio da linha de comando.
Responder1
Qualquer coisa que você possa usar por meio do .NET (por exemplo, C#), também poderá usar por meio do PowerShell, e isso inclui oCriptografia.RandomNumberGeneratoraula. (No .NET Core 2.x, esta classe é implementada via CNGBCryptGenRandom()no Windows, OpenSSLRAND_bytes()no Linux, AppleCryptoCCRandomGenerateBytes()no macOS.)
$bytes = New-Object byte[](8)
$rng = [System.Security.Cryptography.RandomNumberGenerator]::Create()
$rng.GetBytes($bytes)
(Código adaptado deCryptoGetRandom.ps1do "Script Center" da Microsoft. O script original usa a RNGCryptoServiceProvider
classe, que é quase a mesma coisa, mas não está disponível em versões antigas de tempo de execução do .NET 1.x.)