0

完全にランダムな文字の文字列を、読み返すことができるものに変換する必要があります! 私の考えは:

文字列の例: こんにちは

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

だから変換するhi必要があります6869

私の値は現在入っていますBase64(私は で取得しましたConvert.ToBase64String())。この「ASCII から 16 進」への変換は正しいですか? base64 では、「4kIw0ueWC/+c=」のような値がありますが、必要なのは文字だけです。特殊文字はシステムを台無しにする可能性があります

vb.net Convert は base64 文字列にのみ変換できます:(

編集:これが私の最終的な解決策です:enc変数内にbase64文字列を取得し、最初にASCIIに変換してから、次を使用して対応する16進数に変換しました:

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)

終わり!ヒントをありがとう:)

4

1 に答える 1

2

最初に文字列から取得Byte()します。base64

Dim data = Convert.FromBase64String(inputString)

次に、以下を使用しますBitConverter

String hex = BitConverter.ToString(data)
于 2013-03-04T10:45:48.430 に答える