diff --git a/Apewer/BytesUtility.cs b/Apewer/BytesUtility.cs
index 066efb9..eb31af8 100644
--- a/Apewer/BytesUtility.cs
+++ b/Apewer/BytesUtility.cs
@@ -223,6 +223,33 @@ namespace Apewer
return new string(chars);
}
+ /// 将字节数组格式化为十六进制字符串,可指定大小写。
+ /// 例:D41D8CD98F00B204E9800998ECF8427E
+ public static string ToX2(this byte[] bytes, string separator, bool upper = true)
+ {
+ if (bytes == null) return "";
+ var join = separator.NotEmpty();
+
+ var length = bytes.Length;
+ if (length < 1) return TextUtility.Empty;
+
+ var sb = new StringBuilder();
+ var hex = upper ? UpperHex : LowerHex;
+ for (var i = 0; i < length; i++)
+ {
+ var value = bytes[i];
+ var offset = i * 2;
+ var a = hex[value / 16];
+ var b = hex[value % 16];
+
+ if (i > 0 && join) sb.Append(separator);
+ sb.Append(a);
+ sb.Append(b);
+ }
+
+ return sb.ToString();
+ }
+
/// Byte[] -> Base64
public static string ToBase64(params byte[] bytes)
{