using JWT; using JWT.Algorithms; using JWT.Exceptions; using JWT.Serializers; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace jwt { class Program { static void Main(string[] args) { Dictionary<string, object> payload = new Dictionary<string, object> { {"userid",123 },{"username",123 } }; string secret = "dbhgfjdsgafuawfjdsgafjsaefg"; IJwtAlgorithm algorithm = new HMACSHA256Algorithm();//hash值加密 IJsonSerializer serializer = new JsonNetSerializer();//序列化 IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();// 通过base64转义 IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);//设置加密器 var token = encoder.Encode(payload, secret);//生成jwt Console.WriteLine(token); decode(); Console.ReadKey(); //eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyaWQiOjEyMywidXNlcm5hbWUiOjEyM30.q7xXM72a6A4HoYlfkcvMWUe7tVxg6DPPGtBSiPqHdYU } public static void decode() { var token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyaWQiOjEyMywidXNlcm5hbWUiOjEyM30.q7xXM72a6A4HoYlfkcvMWUe7tVxg6DPPGtBSiPqHdYU"; var secret = "dbhgfjdsgafuawfjdsgafjsaefg"; try { IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); IJsonSerializer serializer = new JsonNetSerializer(); IDateTimeProvider provider = new UtcDateTimeProvider(); IJwtValidator validator = new JwtValidator(serializer, provider); IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder(); IJwtDecoder decoder = new JwtDecoder(serializer, validator, urlEncoder, algorithm); var json = decoder.Decode(token, secret, verify: true); Console.WriteLine(json); } catch (TokenExpiredException) { Console.WriteLine(("Token 已经过期!")); } catch (SignatureVerificationException) { Console.WriteLine(("签名校验失败,数据可能被篡改!")); } catch { Console.WriteLine("??????"); } } } }