AesCryptoServiceProvider.GenerateKey使用安全吗

本文关键字:安全 GenerateKey AesCryptoServiceProvider | 更新日期: 2023-09-27 18:00:26

Maarten Bodewes对此问题的评论表明,AesCryptoServiceProvider.GenerateKey()用于密钥生成是不安全的。

我们目前正在使用这种方法来生成加密安全密钥。看看参考源上的底层实现,GenerateKey()在Win32 API中调用CryptGenKey

我找不到任何资源表明CryptGenKey已被破坏。使用此实现是否安全?

AesCryptoServiceProvider.GenerateKey使用安全吗

GenerateKey是完全安全的,但相关问题的实现不是。

不能调用Key = System.Text.Encoding.ASCII.GetString(provider.Key);从随机字节数组中获取字符串,GetString不能用于随机二进制数据,只能用于调用ASCII.GetBytes生成的字节数组。如果要以字符串格式存储密钥,则需要使用为存储二进制数据而设计的格式,如Key = Convert.ToBase64String(provider.Key);