CMD 또는 Powershell을 통해 암호화된 보안 임의 바이트를 제공할 수 있는 장치나 실행 파일이 Windows에 있습니까?

CMD 또는 Powershell을 통해 암호화된 보안 임의 바이트를 제공할 수 있는 장치나 실행 파일이 Windows에 있습니까?

/dev/urandom본질적으로 저는 Linux 와 동등한 Windows를 찾고 있습니다 .

C++ API를 통해 Windows CNG를 사용할 수 있다는 것은 알고 있지만 명령줄을 통해 최신 Windows 시스템의 임의 바이트에 액세스할 수 있는(이식 가능한) 방법이 있는지는 모르겠습니다.

답변1

.NET(예: C#)을 통해 사용할 수 있는 모든 항목은 PowerShell을 통해서도 사용할 수 있으며 여기에는 다음이 포함됩니다.암호화.RandomNumberGenerator수업. (.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)

(다음에서 수정된 코드CryptoGetRandom.ps1Microsoft의 "스크립트 센터"에서. 원본 스크립트는 RNGCryptoServiceProvider거의 동일하지만 고대 .NET 1.x 런타임 버전에서는 사용할 수 없는 클래스를 사용합니다.)

관련 정보