• C#基本Common方法



    1
    、通过Key获取配置文件里的配置信息 public static string GetAppSettingValueByKey(string key) { if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings[key])) { return ConfigurationManager.AppSettings[key]; } return null; } 2、从适用于URL的Base64编码字符串转换为普通字符串 public static string FromBase64StringForUrl(string base64String) { string temp = base64String.Replace('.', '=').Replace('*', '+').Replace('-', '/'); return Encoding.UTF8.GetString(Convert.FromBase64String(temp)); } 从普通字符串转换为适用于URL的Base64编码字符串 public static string ToBase64StringForUrl(string normalString) { return Convert.ToBase64String(Encoding.UTF8.GetBytes(normalString)).Replace('+', '*').Replace('/', '-').Replace('=', '.'); } 3、取得输入字符串的MD5哈希值 public static string GetMd5Hash(string argInput) { // Create a new instance of the MD5CryptoServiceProvider object. MD5 md5Hasher = MD5.Create(); // Convert the input string to a byte array and compute the hash. byte[] data = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(argInput)); // Create a new Stringbuilder to collect the bytes // and create a string. StringBuilder sBuilder = new StringBuilder(); // Loop through each byte of the hashed data // and format each one as a hexadecimal string. for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } // Return the hexadecimal string. return sBuilder.ToString(); } 4、密码强度认证 public static int PwdStrength(string pwd) { if (pwd.Length >= 6) { if (IsMatch("[a-zA-Z]+", pwd) && IsMatch("[0-9]+", pwd) && IsMatch(@"W+D+", pwd)) { return 3; } else if (IsMatch("[a-zA-Z]+", pwd) || IsMatch("[0-9]+", pwd) || IsMatch(@"W+D+", pwd)) { if (IsMatch("[a-zA-Z]+", pwd) && IsMatch("[0-9]+", pwd)) { return 2; } else if (IsMatch("[a-zA-Z]+", pwd) && IsMatch(@"W+D+", pwd)) { return 2; } else if (IsMatch("[0-9]+", pwd) && IsMatch(@"W+D+", pwd)) { return 2; } else { return 1; } } } else { return 0; } return 0; } 5、验证账号格式 ,必须以字母开头的6-20位字母、数字、“_”组合 public static bool VerifyAccount(string account) { Regex r = new Regex(@"^[a-zA-Z][0-9a-zA-Z_]{5,19}$", RegexOptions.None); return r.IsMatch(account); } 6、验证手机格式 public static bool VerifyPhone(string phone) { Regex r = new Regex(@"^1[0-9]{10}$", RegexOptions.None); return r.IsMatch(phone); } 7、验证密码格式,6-20位非空格字符 public static bool VerifyPassword(string password) { Regex r = new Regex(@"^S{6,20}$", RegexOptions.None); return r.IsMatch(password); } 8、验证姓名 public static bool VerifyName(string name) { Regex r = new Regex(@"^[u4e00-u9fa5]{2,8}$", RegexOptions.None); return r.IsMatch(name); } 9、验证身份证 public static bool VerifyIdCard(string idCard) { Regex r = new Regex(@"^d{17}[d|x|X]|d{15}/$", RegexOptions.None); return r.IsMatch(idCard); } 10、验证邮箱 public static bool VerifyEmail(string email) { Regex r = new Regex(@"^[a-zA-Z0-9_.]+@[a-zA-Z0-9-]+[.a-zA-Z]+$", RegexOptions.None); }
     /// <summary>
            /// Unicode解码
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public static string UniDecode(string text)
            {
                System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(text, "\\u([\w]{4})");
                string a = text.Replace("\u", "");
                char[] arr = new char[mc.Count];
                for (int i = 0; i < arr.Length; i++)
                {
                    arr[i] = (char)Convert.ToInt32(a.Substring(i * 4, 4), 16);
                }
                string c = new string(arr);
                return c;
            }
    
    /// <summary> 
            /// 根据GUID获取16位的唯一字符串 
            /// </summary> 
            /// <param name="guid"></param> 
            /// <returns></returns> 
            public static string GuidTo16String()
            {
                long i = 1;
                foreach (byte b in Guid.NewGuid().ToByteArray())
                    i *= ((int)b + 1);
                return string.Format("{0:X}", i - DateTime.Now.Ticks);
            }
            /// <summary> 
            /// 根据GUID获取19位的唯一数字序列 
            /// </summary> 
            /// <returns></returns> 
            public static long GuidToLongID()
            {
                byte[] buffer = Guid.NewGuid().ToByteArray();
                return BitConverter.ToInt64(buffer, 0);
            }
    
     /// <summary>
            /// 对比两个字符串是否相等(不分大小写)
            /// </summary>
            /// <param name="stringX">字符串1</param>
            /// <param name="stringY">字符串2</param>
            /// <returns>true:相等  false:不相等</returns>
            public static bool Comparer2String(string stringX, string stringY)
            {
                StringComparer stringComparer = StringComparer.InvariantCultureIgnoreCase;
                return stringComparer.Compare(stringX, stringY) == 0;
            }
            public static string getNoncestr()
            {
                Random random = new Random();
                return MD5Helper.GetMd5Hash(random.Next(10000).ToString());
            }
            public static string getTimestamp()
            {
                TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                return Convert.ToInt64(ts.TotalMilliseconds).ToString();
            }
    
            public static DateTime GetRealTime(string timeStamp)
            {
                DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
                long lTime = long.Parse(timeStamp + "0000000");
                TimeSpan toNowTime = new TimeSpan(lTime);
                return Convert.ToDateTime(startTime.Add(toNowTime).ToString("yyyy-MM-dd HH:mm:ss"));
            } 
    
     public class MD5Helper
        {
            /// <summary>
            /// 根据salt获取密码Md5(密码MD5格式:MD5(MD5(Password) + Salt))
            /// </summary>
            /// <param name="md5Password">密码</param>
            /// <param name="salt">验证方式</param>
            /// <returns>密码MD5</returns>
            public static string GetPasswordMd5(string md5Password)
            {
                return GetMd5Hash(md5Password);
            }
    
            /// <summary>
            /// 取得输入字符串的MD5哈希值
            /// </summary>
            /// <param name="argInput">输入字符串</param>
            /// <returns>MD5哈希值</returns>
            public static string GetMd5Hash(string argInput)
            {
                // Create a new instance of the MD5CryptoServiceProvider object.
                MD5 md5Hasher = MD5.Create();
    
                // Convert the input string to a byte array and compute the hash.
                byte[] data = md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(argInput));
    
                // Create a new Stringbuilder to collect the bytes
                // and create a string.
                StringBuilder sBuilder = new StringBuilder();
    
                // Loop through each byte of the hashed data 
                // and format each one as a hexadecimal string.
                for (int i = 0; i < data.Length; i++)
                {
                    sBuilder.Append(data[i].ToString("x2"));
                }
    
                // Return the hexadecimal string.
                return sBuilder.ToString();
            }
        }
    
    public class EncryptUtil
        {
    
            //默认密钥向量 
            private static byte[] _key1 = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
    
            /// <summary>
            /// AES加密算法
            /// </summary>
            /// <param name="plainText">明文字符串</param>
            /// <param name="strKey">密钥</param>
            /// <returns>返回加密后的密文字节数组</returns>
            public static string AESEncrypt(string plainText, string strKey)
            {
                //分组加密算法
                SymmetricAlgorithm des = Rijndael.Create();
                byte[] inputByteArray = Encoding.UTF8.GetBytes(plainText);//得到需要加密的字节数组
                des.Key = Encoding.UTF8.GetBytes(strKey);//设置密钥及密钥向量
                des.IV = _key1;
                des.Mode = CipherMode.ECB;
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                byte[] cipherBytes = ms.ToArray();//得到加密后的字节数组
                cs.Close();
                ms.Close();
    
                return Convert.ToBase64String(cipherBytes); ;
            }
    
            /// <summary>
            /// AES解密
            /// </summary>
            /// <param name="cipherText">密文字节数组</param>
            /// <param name="strKey">密钥</param>
            /// <returns>返回解密后的字符串</returns>
            public static string AESDecrypt(string data, string strKey)
            {
                Byte[] cipherText = Convert.FromBase64String(data);
                SymmetricAlgorithm des = Rijndael.Create();
                des.Key = Encoding.UTF8.GetBytes(strKey);
                des.IV = _key1;
                des.Mode = CipherMode.ECB;
                byte[] decryptBytes = new byte[cipherText.Length];
                MemoryStream ms = new MemoryStream(cipherText);
                CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read);
                cs.Read(decryptBytes, 0, decryptBytes.Length);
                cs.Close();
                ms.Close();
                return Encoding.UTF8.GetString(decryptBytes); ;
            }
         
        }
    
     public class Base64Common
        {
            ///
            /// Base64加密
            ///
            ///
            ///
            public static string Base64Code(string Message)
            {
                byte[] bytes = Encoding.Default.GetBytes(Message);
                return Convert.ToBase64String(bytes);
            }
            ///
            /// Base64解密
            ///
            ///
            ///
            public static string Base64Decode(string Message)
            {
                byte[] bytes = Convert.FromBase64String(Message);
                return Encoding.Default.GetString(bytes);
            }
        }

  • 相关阅读:
    IOS中的几种锁(转)
    IOS 主要框架 介绍
    码率bitrate,帧率frame rate,分辨率 (转)
    jupyter notebook 更换主题的方法
    谷歌刚发布的求梯度的工具包-Tangent
    吴恩达深度学习第1课第4周-任意层人工神经网络(Artificial Neural Network,即ANN)(向量化)手写推导过程(我觉得已经很详细了)
    女儿开始bababababa的发声了
    GrideSearchCV 优化算法参数
    修改博客园模板
    Printer for Me
  • 原文地址:https://www.cnblogs.com/xiaoweigogo/p/7808528.html
Copyright © 2020-2023  润新知