"수정된 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
클래스의 UrlTokenEncode
및 UrlTokenDecode
메서드를 사용할 수 있습니다.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!