字节数组和16进制表示的字符串互相转化
来源:互联网 发布:linux建立文件命令 编辑:程序博客网 时间:2024/06/05 18:36
/// <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; }