1

我需要为 .net 中的 AES 对称加密生成一个 256 位密钥。我还没有找到任何关于如何“从头开始”这样做的描述。我的意思是,我不打算将此密钥作为用户密码的基础。我只是想生成一个加密安全的密钥来使用。

据我所知,最好的选择就是使用 .net 类RNGCryptoServiceProvider

这是生成加密安全密钥的最佳方法吗?

4

1 回答 1

1

“最佳方法”取决于您的确切要求。

如果您只需要 32 个随机字节,那么 RNGCryptoServiceProvider 就可以了。您必须做出安排以确保密钥在您的目的地可用,通常使用 RSA 或其他一些非对称加密方法。如果您需要它用于存档目的,那么您将需要一种安全存储它的方法。您还需要确保在不再需要后将其安全删除。

或者,您可以使用密钥派生函数,将传输、存储和删除的相同考虑应用于 KDF 参数。

于 2012-07-17T20:26:12.110 回答