[VB.NET] Base64 인코딩 / 디코딩

2023. 2. 20. 11:43VB.NET/기타

VB가 닷넷으로 넘어오면서 이런류의 인코딩, 디코딩이 엄청 쉬워졌다. 예전 VB6에서는 일일이 코딩 해주거나, 다른 언어용 소스 구해서 변환해서 사용했었는데 이제는 그럴 필요가 없다. 지원 라이브러리가 많아진만큼 뭐가 새로 생겼는지 알아가는것도 나름 하나의 재미다.

이번 시간에는 간단하게 Base64 인코딩 / 디코딩 기능을 만들어보자. 온라인으로 바로바로 인코딩도 하고 디코딩도 하는 사이트들도 많지만, 우리는 개발 과정에 필요한 것이니 직접 구현할 필요가 있다.

아래 화면과 표를 참고해서 간략한 프로젝트를 하나 만들자.

Type Name Text
TextBox TextDec ""
TextBox TextEnc ""
Button ButtonEnc >
Button ButtonDec <

Base64&nbsp;인코딩&nbsp;/&nbsp;디코딩

궃이 설명이 필요없겠지만 화면을 간략히 설명하면, 왼쪽 텍스트상자(TextDec)에 인코딩하기 원하는 문자열을 넣고 인코딩 버튼(>)을 누르면 오른쪽 텍스트상자(TextEnc)에 결과가 나오고, 반대로 오른쪽 텍스트상자에 인코딩된 문자열을 넣고 디코딩 버튼(<)을 누르면 왼쪽 텍스트상자에 디코딩된 결과가 나온다.

이젝 각 버튼의 Click 이벤트를 작성하면 된다.

Private Sub ButtonEnc_Click(sender As Object, e As EventArgs) Handles ButtonEnc.Click
    Dim byte_t = System.Text.Encoding.UTF8.GetBytes(TextDec.Text)
    TextEnc.Text = System.Convert.ToBase64String(byte_t)
End Sub

Private Sub ButtonDec_Click(sender As Object, e As EventArgs) Handles ButtonDec.Click
    Dim byte_t = System.Convert.FromBase64String(TextEnc.Text)
    TextDec.Text = System.Text.Encoding.UTF8.GetString(byte_t)
End Sub

이 소스에서의 핵심은 ToBase64String과 FromBase64String 함수이다. 각각 Base64로 인코딩해주고, 디코딩해주는 함수인데 인코딩할때는 파라미터로 byte()형 변수가 필요해서 System.Text.Encoding.UTF8.GetBytes를 사용해서 텍스트박스에 있는 String을 byte()형으로 변환후 사용한 것이고, 디코딩할때는 반환값이 byte()형 변수이니 이를 다시 String형으로 변환하기 위해 System.Text.Encoding.UTF8.GetString 함수를 사용한 것이다.

Base64 인코딩의 내부동작방식은 검색해보면 많이 나오니 패스하고, 여기서는 VB.NET에서 Base64 인코딩 / 디코딩에 대해서만 알아보았다.

반응형

'VB.NET > 기타' 카테고리의 다른 글

VB.NET으로 스레드 구현하기  (0) 2023.04.10
[VB.NET] 함수 포인터 - 문자열로 함수 호출하기  (0) 2023.02.15