public static string ByteArrayToHexString(byte[] data) {
  StringBuilder sb = new StringBuilder(data.Length * 3);
  foreach (byte b in data)
  {
  sb.Append(Convert.ToString(b, 16).PadLeft(2, '0').PadRight(8, ' '));
  }
    
  return sb.ToString().ToUpper();
    
  }