【发布时间】:2018-03-06 04:44:09
【问题描述】:
当我在 C# 中实例化 AesManaged 时,它已经设置了 .Key 属性。使用它安全吗? IE。对于 AesManaged 的每个新实例(以及每次我在现有实例上调用 .GenerateKey() 时),它的加密强度和随机性是否足够?
我见过的所有示例,首先生成一个随机密码,然后使用 Rfc2898DeriveBytes 或 PasswordDeriveBytes 等密钥派生函数来生成密钥(例如How to use 'System.Security.Cryptography.AesManaged' to encrypt a byte[]?)。这需要额外的信息——比如盐值、密码迭代次数、使用什么哈希算法。
我知道如果我想让我的用户想出密码,我需要这一切。然后我需要从它们中生成随机的加密强密钥。但如果一切都是由计算机生成的,我是否需要以编程方式生成随机密码,然后从中生成密钥,还是只使用 AesManaged.Key 包含的任何内容?
【问题讨论】:
标签: aes