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();
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |