Base64可以將二進位轉碼成可見字元方便進行http傳輸,但是base64轉碼時會生成“+”,“/”,“=”這些被URL進行轉碼的特殊字元,導致兩方面數據不一致。我們可以在發送前將“+”,“/”,“=”替換成URL不會轉碼的字元,接收到數據後,再將這些字元替換回去,再進行解碼。在ASP.NET應用 ...
Base64可以將二進位轉碼成可見字元方便進行http傳輸,但是base64轉碼時會生成“+”,“/”,“=”這些被URL進行轉碼的特殊字元,導致兩方面數據不一致。我們可以在發送前將“+”,“/”,“=”替換成URL不會轉碼的字元,接收到數據後,再將這些字元替換回去,再進行解碼。在ASP.NET應用程式中,可以使用HttpUtility工具類結合Convert類來實現對URl進行Base64編碼以及解碼操作。
(1)將URL進行Base64編碼
public static string Base64Encrypt(string sourthUrl) { string eurl = HttpUtility.UrlEncode(sourthUrl); eurl = Convert.ToBase64String(encoding.GetBytes(eurl)); return eurl; }
(2)將URL進行Base64解碼
public static string Base64Decrypt(string eStr) { if (!IsBase64(eStr)) { return eStr; } byte[] buffer = Convert.FromBase64String(eStr); string sourthUrl = encoding.GetString(buffer); sourthUrl = HttpUtility.UrlDecode(sourthUrl); return sourthUrl; }
備註:此文轉載自Url的Base64編碼以及解碼_IT技術小趣屋。