프로그래밍/C#

[C#] Base64인코딩/디코딩 , Http Basic Auth

ss-pro 2022. 10. 7. 23:22
반응형

문자열을 Bas64인코딩/디코딩하는 방법에 대해 알아보겠습니다. HTTP통신시에 Basic Authentication를 사용하는 경우가 있는데 이때 HTTP Header값에 id:password값을 Base64인코딩하여 호출해야합니다. 

1. C# Base64인코딩,디코딩 방법
인코딩시에는  ToBase64String 함수를 사용하고 , 디코딩시에는  FromBase64String 함수를 사용하면됩니다. 아래부분은 테스트 소스코드입니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace BasicAuth
{
    class Program
    {
        static void Main(string[] args)
        {
            string id = "admin";
            string pw = "1234";
            string msg = $"{id}:{pw}";
 
            //문자열을 Base64인코딩
            string encodingMsg = Convert.ToBase64String(Encoding.Default.GetBytes(msg));
 
            //Base64로 인코딩한값을 디코딩하여 문자열
            byte[] newBytes = Convert.FromBase64String(encodingMsg);
            string decodingMsg = Encoding.Default.GetString(newBytes);
 
            Console.WriteLine($"input string           : {msg}");
            Console.WriteLine($"Base64 Encoding string : {encodingMsg}");
            Console.WriteLine($"Base64 decoding string : {decodingMsg}");
        }
    }
}


2. 테스트 결과
admin:1234를 Base64로 인코딩한 결과값은   YWRtaW46MTIzNA== 입니다.


3. HTTP API 사용시 Header값 설정방법(Authorization)
HTTP Header값에 Authorization항목부분에 아래와 같이 인코딩한 값을 넣어서 호출하면됩니다. id값이 admin , password가 1234인경우에 표시되는 결과값입니다.
Talend API TEST프로그램에 HEADER부분에 Authorization : Basic YWRtaW46MTIzNA==  으로 호출하며 됩니다.