AesCryptoServiceProvider.GenerateKey可以安全使用吗?

时间:2015-06-29 15:27:07

标签: c# .net winapi encryption

Maarten Bodewes'对this question的评论表明AesCryptoServiceProvider.GenerateKey()用于密钥生成是不安全的。

我们目前正在使用此方法生成加密安全密钥。查看Win32 API中的underlying implementation on Reference SourceGenerateKey()调用CryptGenKey

我找不到任何暗示CryptGenKey被泄露的资源。使用此实现是否安全?

1 个答案:

答案 0 :(得分:2)

GenerateKey非常安全,但关联问题的实施并非如此。

你无法调用Key = System.Text.Encoding.ASCII.GetString(provider.Key);从随机字节数组中获取字符串,GetString不能用于随机二进制数据,它只能用于调用{{{1}的字节数组。 1}}。如果要以字符串格式存储密钥,则需要使用用于存储二进制数据的格式,如ASCII.GetBytes