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

그럼 이제 어떻게해야 hexString을 base64 문자열로 변환 할 수 있습니까? 내가 무슨 일을하고있는 중이 야16 진수 문자열을 base64로 변환

Cannot convert from string to byte[]

해당 솔루션이 다른 사람을 위해 작동하는 경우 :
나는, this를 시도 오류가 발생했습니다?

편집 : 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로 변환 할 수 있습니다.

자료-64로 hexstring로 변환하려면 사용할 수 있습니다

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; 
}