ホームページ >バックエンド開発 >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 のエンコードとデコード

「URL 用の変更された Base64」の概念で定義されているように、変更された 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 クラスの 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。