.net成员资格提供程序使用什么加密算法?

时间:2008-11-11 14:47:07

标签: c# security asp.net-membership

我正在查看.net成员资格提供程序的源代码,而sqlmembershipprovider.cs则调用EncryptPassword和DecryptPassword,但我没有在源代码中看到该方法。

他们使用什么算法?这也不是发布的来源吗?

4 个答案:

答案 0 :(得分:3)

SqlMembershipProvider派生自MembershipProvider,它继承EncryptPassword()和DecryptPassword()。

使用Reflector查看代码,如果密钥长度为8个字节,则算法为DES,否则为AES(Rijndael)。

答案 1 :(得分:0)

SqlMembershipProvider使用System.Web.Security.MembershipProvider作为其基类。在基类上调用EncryptPassword和DecryptPassword方法。

启动.NET Reflector并将其指向System.Web.Security.MembershipProvider,您将看到他们是如何做到的。

答案 2 :(得分:0)

虽然加密代码是“公共”,但成员资格提供程序的默认加密基于唯一的机器密钥。

答案 3 :(得分:0)

非常确定基本的Decrypt / EncryptPassword使用AES的标准.NET实现,可能在某处定义了一个键,可能是特定于机器的

请参阅AesManaged课程。