我需要在.net中为AES对称加密生成256位密钥。我还没有找到关于如何“从头开始”这样做的任何描述。我的意思是,我不打算将此密钥用于用户密码。我只是想生成一个加密的安全密钥来使用。
据我所知,最好的选择就是使用.net类RNGCryptoServiceProvider
这是生成加密安全密钥的最佳方法吗?
答案 0 :(得分:1)
“最佳方法”取决于您的确切要求。
如果您需要的是32个随机字节,那么RNGCryptoServiceProvider就可以了。您必须做出安排以确保密钥在您的目的地可用,通常使用RSA或其他一些非对称加密方法。如果您需要它用于存档目的,那么您将需要一种安全存储它的方法。您还需要确保在不再需要它之后将其安全删除。
或者,您可以使用Key Derivation Function,并考虑适用于KDF参数的传输,存储和删除。