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技術小趣屋。
博主個人技術交流群:960640092,博主微信公眾號如下: