字节数组和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;        }


原创粉丝点击