如何将散列结果(字节数组)转换为字符串?
byte[] bytePassword = Encoding.UTF8.GetBytes(password);
using (MD5 md5 = MD5.Create())
{
byte[] byteHashedPassword = md5.ComputeHash(bytePassword);
}
我需要将byteHashedPassword
转换为字符串。
发布于 2010-03-13 04:40:59
public static string ToHex(this byte[] bytes, bool upperCase)
{
StringBuilder result = new StringBuilder(bytes.Length*2);
for (int i = 0; i < bytes.Length; i++)
result.Append(bytes[i].ToString(upperCase ? "X2" : "x2"));
return result.ToString();
}
然后,您可以将其作为扩展方法调用:
string hexString = byteArray.ToHex(false);
发布于 2010-03-13 04:49:30
我总是觉得这是最方便的:
string hashPassword = BitConverter.ToString(byteHashedPassword).Replace("-","");
出于某种奇怪的原因,BitConverter喜欢在字节之间放置破折号,所以替换只是将它们删除。
更新:如果你更喜欢“小写”十六进制,只需执行一个.ToLower()就可以了。
一定要注意,如果你是作为一个紧凑的循环和许多操作来做这件事,这可能是昂贵的,因为至少有两个隐式字符串强制转换和大小调整正在进行。
发布于 2010-03-13 04:40:57
您可以使用Convert.ToBase64String
和Convert.FromBase64String
轻松地将字节数组转换为字符串。
https://stackoverflow.com/questions/2435695
复制相似问题