日期:2014-05-18 浏览次数:20445 次
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; }