# Determine if value is hex or Base64

• ### Question

• Hi,

I take a value that is either in HEX format or in base64 format and if it is in base64 i must convert it to HEX. How can best practise check if the value is already converted or not?

Value hex: 000000001A447390AA6611CD9BC800AA002FC45A09001CA2725ABD8D5543A5768D7369FE7535000000001F6A00003326DC860079684C9F816E8BE55C865F00042AE480DA0000

```       private static bool IsBase64String(string sStringToTest)
{
bool bIsBase64 = false;
sStringToTest = sStringToTest.Trim();

if ((sStringToTest.Length % 4) != 0)
{
bIsBase64 = false;
}
// Check that the string matches the base64 layout
if (Regex.IsMatch(sStringToTest, @"^[a-zA-Z0-9\+/]*={0,2}\$"))
{
bIsBase64 = true;
}
return bIsBase64;
}```

• Edited by Thursday, June 13, 2019 6:55 AM
Thursday, June 13, 2019 6:54 AM

• I think that it is not always possible to distinguish Base64 and Hex strings. For example, “ABCD” can be interpreted as 0, 0x10, 0x83 in Base64 or as 0xAB, 0xCD in Hex.

Thursday, June 13, 2019 11:26 AM
• Base64 is hex. There is no difference. A base64 string is simply a byte array converted to a string. Not every hex string is Base64 though. The easiest way to test this is to simply try to convert it.

```public static bool IsBase64 ( string value )
{
try
{
Convert.FromBase64String(value);
return true;
} catch (FormatException)
{
return false;
};
}```
This function already handles the rules around Base64 such as padding, allowed characters, etc. No reason to reinvent the wheel.

Michael Taylor http://www.michaeltaylorp3.net

Thursday, June 13, 2019 1:50 PM

### All replies

• I think that it is not always possible to distinguish Base64 and Hex strings. For example, “ABCD” can be interpreted as 0, 0x10, 0x83 in Base64 or as 0xAB, 0xCD in Hex.

Thursday, June 13, 2019 11:26 AM
• Base64 is hex. There is no difference. A base64 string is simply a byte array converted to a string. Not every hex string is Base64 though. The easiest way to test this is to simply try to convert it.

```public static bool IsBase64 ( string value )
{
try
{
Convert.FromBase64String(value);
return true;
} catch (FormatException)
{
return false;
};
}```
This function already handles the rules around Base64 such as padding, allowed characters, etc. No reason to reinvent the wheel.

Michael Taylor http://www.michaeltaylorp3.net

Thursday, June 13, 2019 1:50 PM