用户提供的aes加密密钥c#

时间:2016-08-11 08:59:23

标签: c# cryptography aes

AES256使用256位密钥,正好是32字节的数据,就ASCII字符而言是32个字符。它主要是系统生成的密钥。         我正在开发一个项目,使用C#中的AES类加密纯文本文件。在这个项目中有一个窗口表单,要求用户提供密钥。有没有办法使用用户提供的密钥加密纯文本?

1 个答案:

答案 0 :(得分:2)

您不应该向用户询问。您应该要求用户输入密码短语,然后使用行业标准之一key derivation algorithms从密码短语生成密钥,例如PBKDF2。 .Net通过Rfc2898DeriveBytes类为此提供支持。请参阅链接中的示例以了解如何使用它。此外,请确保生成良好的初始化向量并将其添加到加密文件中。

您绝不应将系统生成的密钥与用户提供的密码短语混合使用。如果您生成密钥,那么必须具有密钥交换协议,例如。 TLS。

请花点时间记录一下基本加密。 The Handbook是一个很好的开始阅读(并且是免费的)。不要发布另一个破碎的加密产品...