57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
| using System;
 | |
| using System.Text;
 | |
| 
 | |
| namespace ZhiZhun.AuthenticationCenter.Utility
 | |
| {
 | |
|     public class JWTTokenDeserialize
 | |
|     {
 | |
|         public static string AnalysisToken(string token)
 | |
|         {
 | |
|             string info = token.Split('.')[1];
 | |
|             string escapeInfo = Escape(info);
 | |
|             string sInfo = FromBase64(escapeInfo);
 | |
|             Newtonsoft.Json.JsonConvert.DeserializeObject(sInfo);
 | |
|             return sInfo;
 | |
|         }
 | |
| 
 | |
|         public static string ToBase64(string content)
 | |
|         {
 | |
|             byte[] byteContent = System.Text.Encoding.Default.GetBytes(content);
 | |
|             return Convert.ToBase64String(byteContent);
 | |
|         }
 | |
| 
 | |
|         public static string FromBase64(string result)
 | |
|         {
 | |
|             byte[] byteResult = Convert.FromBase64String(result);
 | |
|             return System.Text.Encoding.Default.GetString(byteResult);
 | |
|         }
 | |
| 
 | |
|         public static string Escape(string str)
 | |
|         {
 | |
|             StringBuilder sb = new StringBuilder();
 | |
|             foreach (char c in str)
 | |
|             {
 | |
|                 sb.Append((Char.IsLetterOrDigit(c)
 | |
|                 || c == '-' || c == '_' || c == '\\'
 | |
|                 || c == '/' || c == '.') ? c.ToString() : Uri.HexEscape(c));
 | |
|             }
 | |
|             return sb.ToString();
 | |
|         }
 | |
| 
 | |
|         public static string UnEscape(string str)
 | |
|         {
 | |
|             StringBuilder sb = new StringBuilder();
 | |
|             int len = str.Length;
 | |
|             int i = 0;
 | |
|             while (i != len)
 | |
|             {
 | |
|                 if (Uri.IsHexEncoding(str, i))
 | |
|                     sb.Append(Uri.HexUnescape(str, ref i));
 | |
|                 else
 | |
|                     sb.Append(str[i++]);
 | |
|             }
 | |
|             return sb.ToString();
 | |
|         }
 | |
|     }
 | |
| }
 |