你需要使用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 – 2011-12-19 14:01:14
Base64是無關緊要的,任何字符串都是一個字節數組,然後用一些格式化BitConverter.ToString()來完成這項工作。 – 2011-12-19 14:06:50