Вы должны будете использовать Convert.FromBase64String
method сначала преобразовать строку в кодировке base64 в массив байтов.
Вы можете взять этот массив байтов и индивидуально преобразовать их в их эквивалентное шестнадцатеричное представление, используя перегрузку Byte.ToString
, которая принимает спецификатор формата. Имеющиеся форматные спецификаторы документируются here, но вы хотите либо X
or x
for hexadecimal, в зависимости от того, хотите ли вы, чтобы буквы были заглавные или нет.
Вы можете инкапсулировать все это в метод расширения для класса String
, если вы хотите скрыть все это для удобства использования. Например:
<System.Runtime.CompilerServices.Extension> _
Public Shared Function ConvertToHex(str As String) As String
' Convert the specified base64-encoded string into an array of bytes.
Dim bytes As Byte() = Convert.FromBase64String(str)
' Loop through each of the items in the array and convert
' to their equivalent hexadecimal representations
Dim sb As New StringBuilder()
For Each b As Byte In bytes
sb.Append(b.ToString("X2"))
Next
Return sb.ToString()
End Function
В качестве альтернативы, можно исследовать с помощью BitConverter.ToString
method вместо петли для преобразования каждого из значений в массиве байт до их эквивалентных представлений шестнадцатеричной строки. Это приведет к получению дефинированной строки шестнадцатеричных пар.
Я понятия не имею, какой метод «лучше» или более совершенен. Вам нужно будет профилировать код или выбрать то, что вы найдете более читаемым.
<System.Runtime.CompilerServices.Extension> _
Public Shared Function ConvertToHex(str As String) As String
' Convert the specified base64-encoded string into an array of bytes.
Dim bytes As Byte() = Convert.FromBase64String(str)
' Convert each of the items in the array to a hex string.
return BitConverter.ToString(bytes)
End Function
Если вы не хотите, черточки в строке, что BitConverter.ToString
метод возвращает, вам необходимо удалить их:
returnString.Replace("-", String.Empty)
http://msdn.microsoft.com/en- us/library/system.convert.frombase64string.aspx –
Base64 не имеет значения, любая строка в массив байтов, а затем BitConverter.ToString() с небольшим количеством форматирования выполнит эту работу. –