日期:2014-05-18 浏览次数:20545 次
private byte[] GetSaltedPassword(string password, string salt)
{
byte[] passwordBuff = Encoding.Unicode.GetBytes(password);
byte[] saltBuff = Convert.FromBase64String(salt);
byte[] saltedPassword = new byte[saltBuff.Length + passwordBuff.Length];
Buffer.BlockCopy(saltBuff, 0, saltedPassword, 0, saltBuff.Length);
Buffer.BlockCopy(passwordBuff, 0, saltedPassword, saltBuff.Length, passwordBuff.Length);
return saltedPassword;
}
private string GetEncodedPassword(string password, int passwordFormat, string passwordSalt)
{
string encodedPassword;
byte[] buff;
byte[] saltedPassword;
switch (passwordFormat)
{
case 0:
encodedPassword = password;
break;
case 1:
saltedPassword = GetSaltedPassword(password, passwordSalt);
HashAlgorithm hashAlgorithm = HashAlgorithm.Create(Membership.HashAlgorithmType);
buff = hashAlgorithm.ComputeHash(saltedPassword);
encodedPassword = Convert.ToBase64String(buff);
break;
default:
saltedPassword = GetSaltedPassword(password, passwordSalt);
buff = EncryptPassword(saltedPassword);
encodedPassword = Convert.ToBase64String(buff);
break;
}