Beispiel #1
0
        /// <summary>
        /// 加密密码
        /// </summary>
        /// <param name="password"></param>
        /// <param name="passwordKey"></param>
        /// <param name="format"></param>
        /// <returns></returns>
        public static string EncodePassword(string password, string passwordKey, CommonEnum.PasswordFormat format)
        {
            if (password == null)
            {
                return(null);
            }
            if (format == CommonEnum.PasswordFormat.Clear)
            {
                return(password);
            }

            byte[] passwordBytes = Encoding.Unicode.GetBytes(password);
            byte[] keyBytes      = Convert.FromBase64String(passwordKey);
            byte[] keyedBytes    = new byte[passwordBytes.Length + keyBytes.Length];

            if (format == CommonEnum.PasswordFormat.Hashed)
            {
                Array.Copy(keyBytes, keyedBytes, keyBytes.Length);
                Array.Copy(passwordBytes, 0, keyedBytes, keyBytes.Length, passwordBytes.Length);
                return(HashPasswordBytes(keyBytes, keyedBytes));
            }
            else if (format == CommonEnum.PasswordFormat.MD5)
            {
                ///return MD5PasswordBytes(keyBytes, passwordBytes);
                return(MD5Password(password));
            }

            return(string.Empty);
        }
Beispiel #2
0
 /// <summary>
 /// 检查密码是否一致
 /// </summary>
 /// <param name="password"></param>
 /// <param name="dbpassword"></param>
 /// <param name="passwordKey"></param>
 /// <param name="format"></param>
 /// <returns></returns>
 public static bool CheckPassword(string password, string dbpassword,
                                  string passwordKey, CommonEnum.PasswordFormat format)
 {
     password = EncodePassword(password, passwordKey, format);
     return(password.ToUpper() == dbpassword.ToUpper());
 }