Morgan Asked: 2019-04-01 22:22:01 +0800 CST2019-04-01 22:22:01 +0800 CST 2019-04-01 22:22:01 +0800 CST Windows 上是否有可以通过 CMD 或 Powershell 提供加密安全随机字节的设备或可执行文件? 772 本质上,我正在寻找与/dev/urandomLinux 相当的 Windows。 我知道我可以通过 C++ API 使用 Windows CNG,但不知道是否有可用的(可移植的)方法通过命令行访问任何现代 Windows 系统上的随机字节。 windows powershell command-line 1 个回答 Voted Best Answer user1686 2019-04-01T22:53:15+08:002019-04-01T22:53:15+08:00 您可以通过 .NET 使用的任何内容(例如 C#)也可以通过 PowerShell 使用,这包括Cryptography.RandomNumberGenerator类。(在 .NET Core 2.x 中,此类在 Windows 上通过 CNG BCryptGenRandom()实现,在 Linux上通过 OpenSSL RAND_bytes()实现,在 macOS 上通过 AppleCrypto CCRandomGenerateBytes()实现。) $bytes = New-Object byte[](8) $rng = [System.Security.Cryptography.RandomNumberGenerator]::Create() $rng.GetBytes($bytes) (代码改编自Microsoft 的“脚本中心”的CryptoGetRandom.ps1。原始脚本使用RNGCryptoServiceProvider该类,这几乎是相同的东西,但在古老的 .NET 1.x 运行时版本中不可用。)
您可以通过 .NET 使用的任何内容(例如 C#)也可以通过 PowerShell 使用,这包括Cryptography.RandomNumberGenerator类。(在 .NET Core 2.x 中,此类在 Windows 上通过 CNG BCryptGenRandom()实现,在 Linux上通过 OpenSSL RAND_bytes()实现,在 macOS 上通过 AppleCrypto CCRandomGenerateBytes()实现。)
(代码改编自Microsoft 的“脚本中心”的CryptoGetRandom.ps1。原始脚本使用
RNGCryptoServiceProvider
该类,这几乎是相同的东西,但在古老的 .NET 1.x 运行时版本中不可用。)