Это не должно быть слишком сложно.Допустимый набор символов для шестнадцатеричного значения - [0-9a-f]
, в то время как действительный набор для Base64 больше похож на [a-zA-Z0-9\+/]
, возможно, с одним или двумя завершающими символами =
для заполнения.Вы должны быть в состоянии использовать регулярные выражения, чтобы различать одно от другого.
Конечно, могут быть некоторые случаи, когда строка представляется допустимой в обоих кодировках, поэтому не существует надежного способа тестирования, основанного только на самой строке.В целом, однако, было бы довольно редко для нетривиальной входной строки, кодированной в Base64, приводить к выходной строке, которая содержит только допустимые шестнадцатеричные символы и не содержит символов заполнения.Довольно редко, но не невозможно.