我有一个关于以下问题的问题:
// input-String (including four bytes) : d131dd02...
// transform Bytes-String in String (this Works!) manually:
String message = ((char)0xd1).ToString() + ((char)0x31).ToString() + ((char)0xdd).ToString() + ((char)0x02).ToString()+ ....
我想编写一个函数,它会自动以正确的格式转换上面给出的输入字符串。 我开始写一些代码,但它不起作用,因为我不知道我该怎么做。
if(checkBox1.Checked== true)
{
String message = null;
char[] bufferArray = textBox1.Text.ToArray();
MessageBox.Show(bufferArray.Length.ToString());
for (int i = 0; i < textBox1.TextLength / 2; i+=2)
{
String buffer=("0" + "x" + bufferArray[i] + bufferArray[i+1]);
message += ((char)buffer.ToString();
}
richTextBox1.Text = getMd5Hash(message);
richTextBox2.Text = MD5HashBerechnen(message).ToLower();
}
有什么想法吗?
答案 0 :(得分:3)
查看Encoding课程。
Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(bufferArray));
答案 1 :(得分:0)
我认为你应该摆脱“/ 2”。
答案 2 :(得分:0)
它不起作用的原因是因为在第一种情况下,您将数字转换为char,在第二种情况下,您将字符串转换为char。
0xd1
与"0xd1"