C# 如何使用自定义加密配置ASP.NET成员资格提供程序?
我想将System.Web.Security.Membership.HashAlgorithmType(或thru Web.config)设置为我创建的自定义加密类,在这个函数中我有加密和解密函数,我想映射属性值以使用这个类 我该怎么做 另外,我不介意更改crypto类的结构,我的观点是使用自定义crypto类C# 如何使用自定义加密配置ASP.NET成员资格提供程序?,c#,asp.net,asp.net-membership,cryptography,web-config,C#,Asp.net,Asp.net Membership,Cryptography,Web Config,我想将System.Web.Security.Membership.HashAlgorithmType(或thru Web.config)设置为我创建的自定义加密类,在这个函数中我有加密和解密函数,我想映射属性值以使用这个类 我该怎么做 另外,我不介意更改crypto类的结构,我的观点是使用自定义crypto类 提前感谢。我在MembershipProvider实现中添加了以下内容: string PasswordEncryptionKey = "the Key"; //should be se
提前感谢。我在MembershipProvider实现中添加了以下内容:
string PasswordEncryptionKey = "the Key"; //should be set somewhere else
internal static byte[] EncryptPassword(string password)
{
MD5CryptoServiceProvider hash = new MD5CryptoServiceProvider();
byte[] key = hash.ComputeHash(
UTF8Encoding.UTF8.GetBytes(PasswordEncryptionKey));
hash.Clear();
RijndaelManaged rm = new RijndaelManaged();
rm.Key = key;
rm.Mode = CipherMode.ECB;
rm.Padding = PaddingMode.PKCS7;
ICryptoTransform transform = rm.CreateEncryptor();
byte[] bytes = UTF8Encoding.UTF8.GetBytes(password);
byte[] result = transform.TransformFinalBlock(bytes, 0, bytes.Length);
rm.Clear();
return result;
}
internal new static string DecryptPassword(byte[] encodedPassword)
{
MD5CryptoServiceProvider hash = new MD5CryptoServiceProvider();
byte[] key = hash.ComputeHash(
UTF8Encoding.UTF8.GetBytes(PasswordEncryptionKey));
hash.Clear();
RijndaelManaged rm = new RijndaelManaged();
rm.Key = key;
rm.Mode = CipherMode.ECB;
rm.Padding = PaddingMode.PKCS7;
ICryptoTransform transform = rm.CreateDecryptor();
byte[] result = transform.TransformFinalBlock(
encodedPassword, 0, encodedPassword.Length);
rm.Clear();
return UTF8Encoding.UTF8.GetString(result); ;
}
您是使用内置的SqlMembershipProvider还是编写了自己的自定义成员资格提供程序?我使用自定义成员资格提供程序