C#密码生成密钥
回答
如果您在System.Security.Cryptography
名称空间中使用加密类,请使用Rfc2898DeriveBytes
类(@CodeInChaos指出它取代PasswordDeriveBytes
)从密码派生密钥。
如果一个随机密钥是OK,则SymmetricAlgorithm
类具有GenerateKey
方法。
我喜欢'Rfc2898DeriveBytes' http://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes.aspx – CodesInChaos 2011-12-21 10:38:59
@CodeInChaos,什么是TL; DR版本为什么你会选择一个在另一方面? – shambulator 2011-12-21 11:14:07
'Rfc2898DeriveBytes'是PBKDF2,'PasswordDeriveBytes'是PBKDF1。我简单地假设2比1好。 – CodesInChaos 2011-12-21 11:36:45
这取决于你处理的关键。
如果您自动生成密钥,只需通过密钥交换方法在某个通道上交换密钥,那么您应该使用一些强大的随机数生成器(如RNGCryptoServiceProvider
)生成密钥。事实上,.NET中的大多数Cipher自动生成一个随机密钥。
如果你想有某种用户输入的密码,那么我建议你使用Rfc2898DeriveBytes
类。还有关于Rfc2898DeriveBytes
的.NET Security blog教程。
- 1. Twofish密码密钥生成
- 2. 仅基于密码生成AES密钥
- 3. C RSA密钥生成器
- 4. 密钥生成
- 5. 生成密钥
- 6. 加密密钥生成
- 7. CryptoJS密钥生成
- 8. RSA密钥生成
- 9. 生成Api密钥
- 10. RijndaelManaged密钥生成
- 11. 从RSA编码的AES密钥生成AES密钥
- 12. 从用户密码安全生成加密密钥?
- 13. 如何使用用密码加密的私钥生成RSA密钥对?
- 14. 密钥组合的Ascii代码生成
- 15. AES加密 - 密钥生成与OpenSSL的
- 16. random.randint生成加密安全密钥
- 17. Rails加密:danpal/attr_encryptor密钥生成
- 18. 密钥生成AES加密symbian
- 19. C# - 在SortedList中自动生成密钥
- 20. 在C中生成私有RSA密钥#
- 21. C++懒密钥生成比较功能
- 22. NGit/Nsch生成SSH密钥对(c#Jgit)
- 23. Objective C Secure.h RSA密钥对生成
- 24. 从共享密钥(ECDH-ES)生成派生密钥 - ConcatKDF
- 25. 如何调整iOS密钥派生迭代密钥生成?
- 26. 高效密钥生成类
- 27. 生成解锁密钥
- 28. 生成唯一密钥
- 29. AS3 Php密钥生成器
- 30. 生成唯一的密钥
如此简单,你可以问用户通过阶段 – 2011-12-21 10:01:10
? – Jonny 2011-12-21 10:02:14
我会这么说。 – 2011-12-21 10:10:01