/// <summary> /// 获取字符串的 MD5 哈希值,默认编码为<see cref="Encoding.UTF8"/> /// </summary> /// <param name="value">待加密的值</param> /// <param name="bitType">MD5加密类型,默认为<see cref="MD5BitType.L32"/></param> /// <param name="encoding">编码类型,默认为<see cref="Encoding.UTF8"/></param> /// <returns></returns> public static string Signature(string value, MD5BitType bitType = MD5BitType.L32, Encoding encoding = null) { if (value == null) { throw new ArgumentNullException(nameof(value)); } if (encoding == null) { encoding = Encoding.UTF8; } switch (bitType) { case MD5BitType.L16: return(Encrypt16Func()(value)(encoding)); case MD5BitType.L32: return(Encrypt32Func()(value)(encoding)); case MD5BitType.L64: return(Encrypt64Func()(value)(encoding)); default: throw new ArgumentOutOfRangeException(nameof(bitType), bitType, null); } }
/// <summary> /// 验证签名 /// </summary> /// <param name="comparison">对比的值</param> /// <param name="value">待加密的值</param> /// <param name="bitType">MD5加密类型,默认为<see cref="MD5BitType.L32"/></param> /// <param name="encoding">编码类型,默认为<see cref="Encoding.UTF8"/></param> /// <returns></returns> public static bool Verify(string comparison, string value, MD5BitType bitType = MD5BitType.L32, Encoding encoding = null) => comparison == Signature(value, bitType, encoding);