Comme défini par le concept « Base64 modifié pour les URL », le décodage et l'encodage des URL Base64 modifiées peuvent être implémentés via un code personnalisé ou en exploitant les méthodes de la classe HttpServerUtility
.
Pour effectuer un encodage Base64 modifié, vous pouvez utiliser le code suivant :
<code class="language-csharp">// 执行正常的 base64 编码 byte[] encodedBytes = Encoding.UTF8.GetBytes(unencodedText); string base64EncodedText = Convert.ToBase64String(encodedBytes); // 应用 URL 变体 string base64UrlEncodedText = base64EncodedText.Replace("=", "").Replace('+', '-').Replace('/', '_');</code>
Pour le décodage, vous pouvez utiliser le code suivant :
<code class="language-csharp">string base64EncodedText = base64UrlEncodedText.Replace('-', '+').Replace('_', '/'); // 根据需要追加“=”字符 - 最佳方法是什么? // 我正常的 base64 解码现在使用 encodedText</code>
Alternativement, vous pouvez utiliser les méthodes HttpServerUtility
et UrlTokenEncode
de la classe 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>
Remarque 1 : La sortie de la méthode HttpServerUtility
n'est pas une chaîne Base64 valide car elle remplace certains caractères par des caractères sécurisés pour les URL.
Remarque 2 : Le format de sortie de HttpServerUtility
est différent de l'algorithme base64url de la RFC4648 car il remplace '=' par '0', '1' ou '2' selon le nombre de les signes égal ont remplacé le remplissage pour assurer la sécurité de l'URL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!