1
我想設置System.Web.Security.Membership.HashAlgorithmType(或通過web.config)到我創建的自定義加密類,在這個函數中我有加密和解密函數我想映射屬性值來使用這個類。如何使用自定義加密配置ASP.NET MembershipProvider?
我該怎麼做?
PS。我不介意改變加密類的結構,我的觀點是使用定製的加密類。
在此先感謝。
我想設置System.Web.Security.Membership.HashAlgorithmType(或通過web.config)到我創建的自定義加密類,在這個函數中我有加密和解密函數我想映射屬性值來使用這個類。如何使用自定義加密配置ASP.NET MembershipProvider?
我該怎麼做?
PS。我不介意改變加密類的結構,我的觀點是使用定製的加密類。
在此先感謝。
我把下面的到的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或者你寫你自己的自定義成員資格的供應商? – 2009-06-26 05:05:03