2013-03-04 188 views
0

我需要轉換一個完全隨機字符的字符串,我可以回讀! 我的想法是:將字符串轉換爲十六進制字符串,反之亦然在Vb.Net

示例串:喜

h (Ascii) -> 68 (hex) 
i (Ascii) -> 69 (hex) 

所以轉換hi我必須6869

我現在的價值是Base64(我用Convert.ToBase64String()了它),這是「ASCII以十六進制「轉換正確嗎?以Base64我有一個值「4kIw0ueWC/+ C =」但我需要字符只,特殊字符,可以搞砸我的系統

的vb.net轉換隻能轉換爲base64字符串:(

編輯:這是我的最終解決方案: 我使用了以base64字符串我enc變量中,並以ASCII先轉換它,然後在corrispondent十六進制:

Dim bytes As Byte() = System.Text.Encoding.ASCII.GetBytes(enc) 
Dim hex As String = BitConverter.ToString(bytes).Replace("-", String.Empty) 

從那以後,我與此相反:

Dim b((input.Length \ 2) - 1) As Byte 
For i As Int32 = 0 To b.GetUpperBound(0) 
    b(i) = Byte.Parse(input.Substring(i * 2, 2), Globalization.NumberStyles.HexNumber) 
Next i 
Dim enc As New System.Text.ASCIIEncoding() 
result = enc.GetString(b) 

這一切後我回到我的base64string和轉換,最後一次與Convert.FromBase64String(result)

完成!謝謝你的提示:)

+0

的Base64得到了無關的十六進制表示。 – 2013-03-04 10:47:00

+0

是的,我知道,對不起,如果帖子看起來像我有困惑,我仍然在學習英語:) – HypeZ 2013-03-04 10:55:18

回答

2

首先從base64字符串得到Byte()

Dim data = Convert.FromBase64String(inputString) 

然後使用BitConverter

String hex = BitConverter.ToString(data) 
+0

這並不轉換*字符*,它轉換字節。我認爲OP實際上並不需要Base64編碼。 – 2013-03-04 10:47:41

+0

我現在有了像「90-8C-34-B9-E5-82-FF-E7」的東西,對我來說沒關係!我只是刪除任何「 - 」字符,並做相反的功能,使這項工作!謝謝! – HypeZ 2013-03-04 10:53:56

相關問題