> 백엔드 개발 > C++ > C#에서 URL-SAFE Base64 인코딩 및 디코딩을 달성하는 방법?

C#에서 URL-SAFE Base64 인코딩 및 디코딩을 달성하는 방법?

Mary-Kate Olsen
풀어 주다: 2025-01-25 03:07:11
원래의
944명이 탐색했습니다.

How to Achieve URL-Safe Base64 Encoding and Decoding in C#?

C#의 URL 안전 Base64 인코딩

Base64 인코딩은 URL 기반 애플리케이션을 다룰 때 데이터 무결성과 가독성을 보장하는 데 중요합니다. C#에서 기본 제공되는 Base64 인코딩 기능은 이진 데이터를 텍스트 기반 표현으로 변환하는 편리한 방법을 제공합니다. 그러나 인코딩된 문자열에 패딩 문자("==")를 추가하므로 URL에 사용될 때 문제가 발생할 수 있습니다.

URL 보안 인코딩

이러한 제한을 극복하기 위해 URL 안전 인코딩은 패딩 문자를 제거하고 특정 문제 문자(" ","/","=")를 URL 친화적 문자("-","_","")로 바꿉니다. 이렇게 하면 해석 문제를 일으키지 않고 인코딩된 문자열을 URL 매개변수로 안전하게 전송할 수 있습니다.

C#에서 URL 안전 인코딩 구현

Java의 코덱 라이브러리와 달리 C#에는 URL 안전 인코딩 기능이 내장되어 있지 않습니다. 하지만 몇 가지 간단한 단계만 거치면 동일한 결과를 얻을 수 있습니다.

  1. 일반 Base64 인코딩을 수행하려면 Convert.ToBase64String()을 사용하세요.
  2. 인코딩된 문자열에서 패딩을 제거하려면 TrimEnd()을 사용하세요.
  3. 문제 문자를 Replace()으로 바꿉니다(예: " "를 "-"로 바꾸고 "/"를 "_"로 바꿉니다).

<code class="language-csharp">byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes("StringToEncode");
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(new char[] {'='}).Replace('+', '-').Replace('/', '_');</code>
로그인 후 복사

참고: 효율성 향상을 위해 패딩 문자 배열을 정적 읽기 전용 필드로 정의할 수 있습니다.

과정을 거꾸로 진행

URL 안전 인코딩 문자열을 원래 형식으로 다시 디코딩하려면 이 프로세스를 역으로 수행하면 됩니다.

  1. URL 친화적인 문자를 원래 문자로 바꾸세요.
  2. 필요한 경우 '=' 문자를 사용하여 문자열을 4의 배수로 채웁니다.
  3. 문자열을 다시 이진 데이터로 변환하려면 Convert.FromBase64String()을 사용하세요.

<code class="language-csharp">string incoming = returnValue
    .Replace('_', '/').Replace('-', '+');
switch(incoming.Length % 4) {
    case 2: incoming += "=="; break;
    case 3: incoming += "="; break;
}
byte[] bytes = Convert.FromBase64String(incoming);
string originalText = Encoding.ASCII.GetString(bytes);</code>
로그인 후 복사

이러한 단계를 결합하면 C#에서 URL 안전 인코딩을 효과적으로 구현할 수 있습니다. 상호 운용성이 필요한 시나리오에서 호환성을 보장하려면 일반적으로 사용되는 코덱 라이브러리의 방법이 이 구현과 일치하는지 테스트하는 것이 중요합니다.

위 내용은 C#에서 URL-SAFE Base64 인코딩 및 디코딩을 달성하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿