C#의 URL 안전 Base64 인코딩
Base64 인코딩은 URL 기반 애플리케이션을 다룰 때 데이터 무결성과 가독성을 보장하는 데 중요합니다. C#에서 기본 제공되는 Base64 인코딩 기능은 이진 데이터를 텍스트 기반 표현으로 변환하는 편리한 방법을 제공합니다. 그러나 인코딩된 문자열에 패딩 문자("==")를 추가하므로 URL에 사용될 때 문제가 발생할 수 있습니다.
URL 보안 인코딩
이러한 제한을 극복하기 위해 URL 안전 인코딩은 패딩 문자를 제거하고 특정 문제 문자(" ","/","=")를 URL 친화적 문자("-","_","")로 바꿉니다. 이렇게 하면 해석 문제를 일으키지 않고 인코딩된 문자열을 URL 매개변수로 안전하게 전송할 수 있습니다.
C#에서 URL 안전 인코딩 구현
Java의 코덱 라이브러리와 달리 C#에는 URL 안전 인코딩 기능이 내장되어 있지 않습니다. 하지만 몇 가지 간단한 단계만 거치면 동일한 결과를 얻을 수 있습니다.
Convert.ToBase64String()
을 사용하세요. TrimEnd()
을 사용하세요. 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 안전 인코딩 문자열을 원래 형식으로 다시 디코딩하려면 이 프로세스를 역으로 수행하면 됩니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!