2017-09-20 16 views
-5
byte[] ba = Encoding.Default.GetBytes(input); 
var hexString = BitConverter.ToString(ba); 
hexString = hexString.Replace("-", ""); 
Console.WriteLine("Or: " + hexString + " in hexadecimal"); 

だから私はhexStringをbase64文字列に変換する方法を教えてください。
私は、thisを試してみましたエラーを得た:16進数の文字列をbase64に変換する

Cannot convert from string to byte[]

そのソリューションは、誰のために働く場合は、私が間違って何をやっていますか?

編集:var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText); return System.Convert.ToBase64String(plainTextBytes);私はこれを試しましたが、最初の行で暗黙的に型 'byte []'を 'string'に変換してから、 '引数1:' string 'から' byte [] ' ''

+0

は、あなたの代わりに(入力)Convert.FromBase64Stringしようとしたことがありますか? – GrandMasterFlush

+2

OP、他の質問にリンクしないでください。この記事で試したコードを入力してください。 [mcve] – Equalsk

+0

を参照してください。[Base64文字列をエンコードおよびデコードするにはどうすればいいですか?](https://stackoverflow.com/questions/11743160/how-do-i-encode-and-decode-a-base64-string ) – tk421

答えて

2

まず、hexstringをバイト配列に変換する必要があります。これを次にbase-64に変換することができます。あなたが使用することができますhexstringからベース-64に変換するには

、:

public static string HexString2B64String(this string input) 
{ 
    return System.Convert.ToBase64String(input.HexStringToHex()); 
} 

HexStringToHexは次のとおりです。

public static byte[] HexStringToHex(this string inputHex) 
{ 
    var resultantArray = new byte[inputHex.Length/2]; 
    for (var i = 0; i < resultantArray.Length; i++) 
    { 
     resultantArray[i] = System.Convert.ToByte(inputHex.Substring(i * 2, 2), 16); 
    } 
    return resultantArray; 
} 
関連する問題