马腾·波德威斯在这个问题上的评论指出,AesCryptoServiceProvider.GenerateKey()用于密钥生成是不安全的。
我们目前正在使用此方法生成加密安全密钥。查看参考资料来源的基本实现,GenerateKey()在Win32 API中调用CryptGenKey。
我找不到任何资源表明CryptGenKey被破坏了。使用此实现安全吗?
发布于 2015-06-29 16:03:14
GenerateKey是完全安全的,但是在链接问题上的实现并不安全。
不能调用Key = System.Text.Encoding.ASCII.GetString(provider.Key);从随机字节数组获取字符串,GetString不能用于随机二进制数据,只能用于调用ASCII.GetBytes生成的字节数组。如果要以字符串格式存储密钥,则需要使用设计用于存储二进制数据(如Key = Convert.ToBase64String(provider.Key); )的格式。
https://stackoverflow.com/questions/31119625
复制相似问题