投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/3/9 14:15:35
> by += CStr(dj(dd))
せめて
 by &= dj(dd).ToString("000")
のように 3 桁固定であるとか、あるいは
 by &= ("," & CStr(dj(dd)))
のように、区切り文字付きであれば復元できたのですけれどね。

既に指摘されているように、現状の変換規則では原理的に復元不可能ですが、
他の変換規則でも良いなら。

《案1》"56-78-9A-BC" 形式の16進数文字列
'バイナリ→文字列変換 
Dim bin() As Byte = System.IO.File.ReadAllBytes("C:\WINDOWS\system32\calc.exe")
Dim hexText As String = BitConverter.ToString(bin)
'文字列→バイナリ復元 
Dim bin2() As Byte = Array.ConvertAll(Split(hexText, "-"), Function(s) Convert.ToByte(s, 16))


《案2》BASE64変換(64種類の英数字で表現)
'バイナリ→文字列変換 
Dim bin() As Byte = System.IO.File.ReadAllBytes("C:\WINDOWS\system32\calc.exe")
Dim base64 As String = Convert.ToBase64String(bin)
'文字列→バイナリ復元 
Dim bin2() As Byte = Convert.FromBase64String(base64)