/// <summary> /// 获取文件的MD5值,可能抛出异常 /// </summary> /// <param name="filepath">文件路径</param> /// <param name="charcase">字符大小写,默认小写</param> /// <returns>获取大的MD5值</returns> public static string GetFileMd5Value(string filepath, CharCaseEnum charcase = CharCaseEnum.LOWER) { byte[] content = FileToBytes(filepath); if (content == null) { return(null); } return(EncryptUtils.GetBytesMd5Value(content, charcase)); }
/// <summary> /// 获取二进制数组的MD5值 /// </summary> /// <param name="content">要获取MD5值二进制数组</param> /// <param name="charcase">字符大小写,默认为小写</param> /// <returns>得到的MD5值</returns> public static string GetBytesMd5Value(byte[] content, CharCaseEnum charcase = CharCaseEnum.LOWER) { if (content == null) { throw new NonStandardInputException("如果你想要获取二进制数组的MD5值,那么请确保该二进制数组不为NULL"); } MD5 md5 = new MD5CryptoServiceProvider(); byte[] md5data = md5.ComputeHash(content); md5.Clear(); string str = "", formatstr = charcase == CharCaseEnum.LOWER?"x":"X"; for (int i = 0; i < md5data.Length - 1; i++) { str += md5data[i].ToString(formatstr).PadLeft(2, '0'); } return(str); }
/// <summary> /// 获取字符串的MD5值 /// </summary> /// <param name="str">字符串</param> /// <param name="encode">编码格式</param> /// <param name="charcase">字符大小写</param> /// <returns>MD5值</returns> public static string GetMd5Value(this string str, Encoding encode, CharCaseEnum charcase = CharCaseEnum.LOWER) { byte[] content = encode.GetBytes(str); return(EncryptUtils.GetBytesMd5Value(content, charcase)); }