如何将字符串转换为hex字节数组?

可能重复:
如何在C#中将字节数组转换为hex字符串,反之亦然?

为了测试我的加密算法,我提供了密钥,纯文本及其生成的密文。

键和明文是字符串

我如何将其转换为hex字节数组?

像这样: E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FA

对于这样的事情:

 byte[] key = new byte[16] { 0xE8, 0xE9, 0xEA, 0xEB, 0xED, 0xEE, 0xEF, 0xF0, 0xF2, 0xF3, 0xF4, 0xF5, 0xF7, 0xF8, 0xF9, 0xFA} ; 

提前Thanx 🙂

你需要这个吗?

 static class HexStringConverter { public static byte[] ToByteArray(String HexString) { int NumberChars = HexString.Length; byte[] bytes = new byte[NumberChars / 2]; for (int i = 0; i < NumberChars; i += 2) { bytes[i / 2] = Convert.ToByte(HexString.Substring(i, 2), 16); } return bytes; } } 

希望能帮助到你。

MSDN的示例代码:

 string hexValues = "48 65 6C 6C 6F 20 57 6F 72 6C 64 21"; string[] hexValuesSplit = hexValues.Split(' '); foreach (String hex in hexValuesSplit) { // Convert the number expressed in base-16 to an integer. int value = Convert.ToInt32(hex, 16); // Get the character corresponding to the integral value. string stringValue = Char.ConvertFromUtf32(value); char charValue = (char)value; Console.WriteLine("hexadecimal value = {0}, int value = {1}, char value = {2} or {3}", hex, value, stringValue, charValue); } 

您只需将其更改为在每2个字符而不是空格上拆分字符串。

你的意思是这个吗?

 StringBuilder Result = new StringBuilder(); string HexAlphabet = "0123456789ABCDEF"; foreach (byte B in Bytes) { Result.Append(HexAlphabet[(int)(B >> 4)]); Result.Append(HexAlphabet[(int)(B & 0xF)]); } return Result.ToString();