【发布时间】:2011-02-10 09:51:36
【问题描述】:
我想在 Windows 上生成一个随机加密密钥。我在哪里可以获得熵?
我希望我的熵函数能够在没有网络连接的情况下工作,并且在 Windows 2000 及更高版本上可靠。即使可能提供或不提供少量熵的源也可能有用,因为所有源都将被合并。
这是我最初的函数列表:
GetCurrentProcessID, GetCurrentThreadID, GetTickCount, GetLocalTime, QueryPerformanceCounter, GlobalMemoryStatus, GetDiskFreeSpace, GetComputerName, GetUserName, GetCursorPos, GetMessageTime, GetSystemInfo, CryptGenRandom, GetProcessHandleCount, GetProcessMemoryInfo.
【问题讨论】:
-
你为什么要列出 CryptGenRandom,什么时候,嗯,你想要什么?
-
我不确定它是否适用于所有计算机和 Windows 版本。你是说我绝对应该使用那个功能吗?我应该按照它的建议为其提供熵吗?
-
适用于所有版本的 Windows。检查您链接到自己的documentation。支持的最低版本是 Windows 2000,正是您声明的要求。
-
@Martinho 和@Cody:我刚刚阅读了Wikipedia page about CryptGenRandom,它说它在Windows 2000 上的安全性不是很好。我将使用它作为主要的,但不是我的密钥的唯一随机来源。
标签: windows winapi random cryptography entropy