我正在生成一个加密密钥,用Rijndael(AES)加密算法加密一些敏感数据.我正在使用guid作为密钥生成器.这些钥匙"足够"吗?
注意:它只对20分钟敏感.
我们目前正在使用.NET Guid.NewGuid()来生成激活码和API密钥.我想知道这是否会因为算法打开而造成安全问题.
.NET Guid使用Win32 CoCreateGuid,我不知道它的内部(可能是MAC地址+时间戳?).有人可以从第一个GUID中获得第二个GUID,或者可以用一些聪明的猜测来命中它,或者随机性是否足够好以至于搜索空间变得太大了?
生成随机密钥存在冲突问题,在添加到数据库之前需要进行双重检查.这就是为什么我们坚持使用GUID但我不确定他们的安全性是出于这些目的.
以下是连续4次UUIDGEN输出:
Run Code Online (Sandbox Code Playgroud)c44dc549-5d92-4330-b451-b29a87848993 d56d4c8d-bfba-4b95-8332-e86d7f204c1c 63cdf958-9d5a-4b63-ae65-74e4237888ea 6fd09369-0fbd-456d-9c06-27fef4c8eca5
以下是其中4个Guid.NewGuid():
Run Code Online (Sandbox Code Playgroud)0652b193-64c6-4c5e-ad06-9990e1ee3791 374b6313-34a0-4c28-b336-bb2ecd879d0f 3c5a345f-3865-4420-a62c-1cdfd2defed9 5b09d7dc-8546-4ccf-9c85-de0bf4f43bf0