C#Cryptography生成密钥

时间:2011-12-21 09:57:18

标签: c# .net encryption cryptography

我正在尝试使用c#加密/解密字符串。我已经找到了无数关于如何使用这个ex的教程:this但是大多数人都认为你已经拥有了密钥。所以我的问题是:

如何生成密钥?

提前致谢。

3 个答案:

答案 0 :(得分:4)

如果您在System.Security.Cryptography命名空间中使用加密类,请使用Rfc2898DeriveBytes类(@CodeInChaos指出它取代PasswordDeriveBytes)从密码中派生密钥。

如果随机密钥没问题,则SymmetricAlgorithm类使用GenerateKey方法。

答案 1 :(得分:2)

这取决于你处理钥匙。

如果您自动生成密钥并使用密钥交换方法在某个通道上交换密钥,那么您应该使用RNGCryptoServiceProvider等强大的随机数生成器生成密钥。实际上,.NET中的大多数密码都会自动生成一个随机密钥。

如果您想要某种用户输入密码,我建议您使用Rfc2898DeriveBytes课程。关于Rfc2898DeriveBytes的{​​{3}}还有一个教程。

答案 2 :(得分:1)

根据你想要的密钥,你可以在这里生成一个

http://randomkeygen.com/https://www.grc.com/passwords.htm

但你追求的是什么类型的钥匙?