我正在查看.net成员资格提供程序的源代码,而sqlmembershipprovider.cs则调用EncryptPassword和DecryptPassword,但我没有在源代码中看到该方法。
他们使用什么算法?这也不是发布的来源吗?
答案 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课程。