Windows 上是否有可以透過 CMD 或 Powershell 提供加密安全隨機位元組的裝置或執行檔?

Windows 上是否有可以透過 CMD 或 Powershell 提供加密安全隨機位元組的裝置或執行檔?

本質上,我正在尋找/dev/urandom與 Linux 相同的 Windows 版本。

我知道我可以透過 C++ API 使用 Windows CNG,但不知道是否有可用的(可移植)方法透過命令列存取任何現代 Windows 系統上的隨機位元組。

答案1

您可以透過 .NET 使用的任何內容(例如 C#)也可以透過 PowerShell 使用,這包括密碼學.隨機數產生器班級。 (在.NET Core 2.x中,該類別是透過CNG實現的BCryptGenRandom()在 Windows 上,OpenSSLRAND_bytes()在 Linux、AppleCrypto 上CCRandomGenerateBytes()在 macOS 上。

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

(代碼改編自CryptoGetRandom.ps1來自微軟的「腳本中心」。原始腳本使用該類RNGCryptoServiceProvider,這幾乎是相同的東西,但在古老的 .NET 1.x 運行時版本上不可用。

相關內容