/// <summary>
/// 字节数组转换为16进制表示的字符串
/// </summary>
public static string ByteArrayToHexString(byte[] buf)
{
int iLen = 0;
// 通过反射获取 MachineKeySection 中的 ByteArrayToHexString 方法,该方法用于将字节数组转换为16进制表示的字符串。只能通过反射找到因为是 internal的
Type type = typeof(System.Web.Configuration.MachineKeySection);
MethodInfo byteArrayToHexString = type.GetMethod("ByteArrayToHexString", BindingFlags.Static | BindingFlags.NonPublic);
// 字节数组转换为16进制表示的字符串
return (string)byteArrayToHexString.Invoke(null, new object[] { buf, iLen });
}
/// <summary>
/// 16进制表示的字符串转换为字节数组
/// </summary>
public static byte[] HexStringToBytes(string hexString)
{
if (hexString == null)
{
throw new ArgumentNullException("hexString");
}
if ((hexString.Length & 1) != 0)
{
throw new ArgumentOutOfRangeException("hexString", hexString, "hexString must contain an even number of characters.");
}
byte[] result = new byte[hexString.Length / 2];
for (int i = 0; i < hexString.Length; i += 2)
{
result[i / 2] = byte.Parse(hexString.Substring(i, 2), NumberStyles.HexNumber);
}
return result;
}
字节数组和16进制表示的字符串互相转化
最新推荐文章于 2025-03-19 19:00:00 发布