AesCryptoServiceProvider.GenerateKey使用安全吗
本文关键字:安全 GenerateKey AesCryptoServiceProvider | 更新日期: 2023-09-27 18:00:26
Maarten Bodewes对此问题的评论表明,AesCryptoServiceProvider.GenerateKey()
用于密钥生成是不安全的。
我们目前正在使用这种方法来生成加密安全密钥。看看参考源上的底层实现,GenerateKey()
在Win32 API中调用CryptGenKey
。
我找不到任何资源表明CryptGenKey
已被破坏。使用此实现是否安全?
GenerateKey
是完全安全的,但相关问题的实现不是。
不能调用Key = System.Text.Encoding.ASCII.GetString(provider.Key);
从随机字节数组中获取字符串,GetString
不能用于随机二进制数据,只能用于调用ASCII.GetBytes
生成的字节数组。如果要以字符串格式存储密钥,则需要使用为存储二进制数据而设计的格式,如Key = Convert.ToBase64String(provider.Key);