using JWT; using JWT.Algorithms; using JWT.Serializers; using System; using System.Text; namespace FactorySystemCommon { public class JWTHelper { /// /// 加密 /// public static string Encryption(object content, string keyStr = "") { string result; try { keyStr = AppSettingsHelper.GetAppSettingVal("ApiAuthSecretKey") + keyStr.Replace("_", "").ToLower(); byte[] key = Encoding.UTF8.GetBytes(keyStr); IJwtAlgorithm algorithm = new HMACSHA256Algorithm();//加密方式 IJsonSerializer serializer = new JsonNetSerializer();//序列化Json IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();//base64加解密 IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);//JWT编码 result = encoder.Encode(content, key);//生成令牌 } catch (Exception ex) { throw new Exception("Auth加密发生异常,异常信息:" + ex.Message.ToString()); } return result; } /// /// 解密 /// public static T Decrypt(string strKey, string keyStr = "") { keyStr = AppSettingsHelper.GetAppSettingVal("ApiAuthSecretKey") + keyStr.Replace("_", "").ToLower(); byte[] key = Encoding.UTF8.GetBytes(keyStr); 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); //解密 return decoder.DecodeToObject(strKey, key, verify: true); } } }