在MachineKey for SqlMembershipProvider中使用AES256作为“解密”

时间:2011-06-09 14:12:03

标签: encryption sqlmembershipprovider aes machinekey

我正在为SharePoint 2010网站创建基于表单的身份验证的自定义注册表单,并在aspnet_Membership数据库表中将密码存储为“Encrypted”。

我在web.config中的设置显示'decryption'参数是“AES”。我的老板要求我使用AES256,因为它更安全,但我无法解决如何做到这一点。我一直在谷歌搜索和“stackoverflowing”,但到目前为止,我还没有找到一个解释我需要做什么,或在哪里寻找好信息的帖子。

我认为,我的问题是:

  1. 是“AES256”,是“
  2. ”的“解密”参数的有效值
  3. 如果没有,只是生成一个更长的“解密密钥”所需的所有使AES更强的东西?即如果我将解密密钥设为64个字符长,那会构成AES256吗?
  4. 如果我完全偏离目前的想法,是否有人可以让我走上正轨,或解释(或链接到解释)如何更新我的web.config以使用AES256而不是默认的AES?
  5. 以防万一有人想说“你应该使用Hashed”..在那里讨论过,决定使用加密。我以为我会解决这个问题:)

1 个答案:

答案 0 :(得分:1)

  1. 不,您只能使用“AES”作为AES算法的解密参数。

  2. 是的,如果你生成一个256位(64字节)长的,你实际上有AES256。实际上,您也可以生成512位长的数据。该值越长,加密越强。

  3. 不需要。你似乎理解它。

  4. 现在,在.NET 4.0中,他们对此进行了一些增强,允许SHA256也用于验证。有关详细信息,请参阅MSDN's documentation (archive.org snapshot)