Avatar ·

如何在C#中将字节数组转换为十六进制字符串并转换回来?

大家好!我是一名初学C#的开发者,在处理字节数据时遇到了问题。我需要将哈希值(SHA256)保存到文本文件中,然后再加载回来进行验证。哈希值以字节数组(byte[])的形式获取,但为了写入文件,需要将其转换为字符串,然后在读取时再转换回字节数组。 我尝试过直接使用`BitConverter.ToString(bytes)`,但它会在字节之间输出带连字符的字符串,例如:"A1-B2-C3"。这不是我想要的——我希望得到一个没有分隔符的紧凑字符串,比如"A1B2C3"。而当我尝试将这样的字符串读回时,我不知道如何正确将其转换为字节数组。 以下是我当前的代码示例,它没有按预期工作: ```csharp byte[] hashBytes = SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes("test")); string hexString = BitConverter.ToString(hashBytes); // 得到 "A1-B2-C3..." // 如何去掉连字符? // 以及如何将hexString转换回字节数组? ```