>백엔드 개발 >C++ >ASP.NET Framework에서 수정된 Base64 URL을 어떻게 인코딩하고 디코딩합니까?

ASP.NET Framework에서 수정된 Base64 URL을 어떻게 인코딩하고 디코딩합니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-11 22:08:42802검색

How to Encode and Decode Modified Base64 URLs in ASP.NET Framework?

ASP.NET Framework에서 수정된 Base64 URL 인코딩 및 디코딩

"수정된 Base64 URL" 개념에 정의된 대로 수정된 Base64 URL의 디코딩 및 인코딩은 사용자 정의 코드를 통해 또는 HttpServerUtility 클래스의 메서드를 활용하여 구현할 수 있습니다.

맞춤 코드

수정된 Base64 인코딩을 수행하려면 다음 코드를 사용할 수 있습니다.

<code class="language-csharp">// 执行正常的 base64 编码
byte[] encodedBytes = Encoding.UTF8.GetBytes(unencodedText);
string base64EncodedText = Convert.ToBase64String(encodedBytes);

// 应用 URL 变体
string base64UrlEncodedText = base64EncodedText.Replace("=", "").Replace('+', '-').Replace('/', '_');</code>

디코딩하려면 다음 코드를 사용할 수 있습니다.

<code class="language-csharp">string base64EncodedText = base64UrlEncodedText.Replace('-', '+').Replace('_', '/');

// 根据需要追加“=”字符 - 最佳方法是什么?

// 我正常的 base64 解码现在使用 encodedText</code>

HttpServerUtility 클래스

또는 HttpServerUtility 클래스의 UrlTokenEncodeUrlTokenDecode 메서드를 사용할 수 있습니다.

<code class="language-csharp">///<summary>
/// 使用 UTF-8 字符集进行 Base 64 编码,使用 URL 和文件名安全字母表。
///</summary>
///原始字符串
///<returns>Base64 编码的字符串</returns>
public static string Base64ForUrlEncode(string str)
{
    byte[] encbuff = Encoding.UTF8.GetBytes(str);
    return HttpServerUtility.UrlTokenEncode(encbuff);
}
///<summary>
/// 使用 UTF-8 解码使用 URL 和文件名安全字母表的 Base64 编码字符串。
///</summary>
///Base64 代码
///<returns>解码后的字符串。</returns>
public static string Base64ForUrlDecode(string str)
{
    byte[] decbuff = HttpServerUtility.UrlTokenDecode(str);
    return Encoding.UTF8.GetString(decbuff);
}</code>

참고 1: HttpServerUtility 메서드의 출력은 일부 문자를 URL 안전 문자로 바꾸기 때문에 유효한 Base64 문자열이 아닙니다.

참고 2: HttpServerUtility의 출력 형식은 RFC4648의 base64url 알고리즘과 다릅니다. 왜냐하면 '='를 '0', '1' 또는 '2'로 대체하기 때문입니다. URL 보안을 보장하기 위해 등호가 패딩을 대체했습니다.

위 내용은 ASP.NET Framework에서 수정된 Base64 URL을 어떻게 인코딩하고 디코딩합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.