当前位置: 首页 > news >正文

辽宁城乡住房建设厅网站本地江苏网站建设

辽宁城乡住房建设厅网站,本地江苏网站建设,网站建设什么服务器好,wordpress导航菜单修改JWT解释 JWT是一种加密后的数据载体#xff0c;可在各应用间进行数据传输。 JWT的组成 包含3部分。header#xff08;头#xff09;、payload#xff08;有效载荷#xff09;、signature#xff08;签名#xff09;。格式是header.payload.signature Header组成 JWT…JWT解释 JWT是一种加密后的数据载体可在各应用间进行数据传输。 JWT的组成 包含3部分。header头、payload有效载荷、signature签名。格式是header.payload.signature Header组成 JWT的头部承载两部分信息 声明类型默认是JWT 声明加密的算法 常用的算法:HMAC、RSA、ECDSA等 {alg:HS256typ:JWT }alg:表示签名的算法默认是 HMAC SHA256(写成 HS256); typ:表示令牌(token)的类型JWT 令牌统一写为 JwT。使用Base64加密构成了JT第一部分-header Payload组成 Payload 部分也是一个JSON 对象用来存放实际需要传递的有效信息。 标准载荷:有很多建议使用但不强制对T信息作补充。 标准载荷介绍iss (issuer)签发人(谁签发的)exp (expiration time)过期时间必须要大于签发时间sub (subject)主题(用来做什么)aud (audience)受众(给谁用的)比如:http://www.xxx.comnbf (Not Before)生效时间iat (lssued At)签发时间jti (JWT ID)编号JWT的唯一身份标识 自定义载荷:可以添加任何的信息一般添加用户的相关信息或其他业务需要的必要信息。但不建议添加敏感信息因为该部分在客户端可解密。 {#自定义载荷user_info:[{id: 1}{name: lili},{age: 18}]#标准载荷iat: 1681571257.exp:1682783999aud:xiaofei,iss:dafeisub: alluser }使用Base64加密构成了JT第二部分payload signature组成 Signature 部分是对前两部分的签名防止数据篡改。 首先需要指定一个密钥(secret)。这个密钥只有服务器才知道不能泄露给用户。然后使用 Header 里面指定的签名算法(默认是 HMAC SHA256)按照下面的公式产生签名。 signature HMACSHA256(base64urlEncode(header) base64UrlEncode(payload)secret)算出签名以后把 Header、Pavload、signature 三个部分拼成一个字符串每个部分之间用点(.)分隔就可以返回给用户。 因为有这个密钥的存在所以即便调用方偷偷的修改了前两部分的内容在验证环节就会出现签名不一致的情况,所以保证了安全性。 使用Base64加密构成了JT第三部分-signature 实践 dependencies!--JWT(Json Web Token)登录支持--dependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt-api/artifactIdversion0.11.5/version/dependencydependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt-impl/artifactIdversion0.11.5/versionscoperuntime/scope/dependencydependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt-jackson/artifactIdversion0.11.5/versionscoperuntime/scope/dependency/dependenciespublic class JwtUtil {static String USER_INFO_USERNAME username;static int JWT_EXPIRATION 24 * 60 * 60 * 1000;static String JWT_SECRET jwtsecretfdghfghfdfgdfgdfsgdfgdfgfdgdfgdfgdfgdfg;static String JWT_CREATE_TIME jwtCreateTime;static String USER_INFO_ID id;public static String createToken(MapString, Object claims) {String token Jwts.builder() // .setHeader(new HashMap()).setAudience(Audience).setIssuer(Issuer).setSubject(Subject).setNotBefore(new Date()).setIssuedAt(new Date()).setId(jwt id).setClaims(claims)//载荷.setExpiration(generateExpirationDate()).signWith(Keys.hmacShaKeyFor(Decoders.BASE64.decode(JWT_SECRET))).compact();return token;}private static Date generateExpirationDate() {return new Date(System.currentTimeMillis() JWT_EXPIRATION);}public static Claims parseToken(String token) {Claims claims Jwts.parserBuilder().setSigningKey(Decoders.BASE64.decode(JWT_SECRET)).build().parseClaimsJws(token).getBody();return claims;}public static String getUsername(String token) {Claims claims parseToken(token);return getValue(claims, USER_INFO_USERNAME);}public static boolean validateToken(String token) {Claims claims parseToken(token);return claims ! null !isTokenExpired(token);}private static boolean isTokenExpired(String token) {Date expiredDate getExpiredDate(token);return expiredDate.before(new Date());}private static Date getExpiredDate(String token) {Claims claims parseToken(token);return claims.getExpiration();}private static String refreshToken(String token) {Claims claims parseToken(token);claims.put(JWT_CREATE_TIME, new Date());return createToken(claims);}private static String getValue(Claims claims, String key) {return claims.get(key) ! null ? claims.get(key).toString() : null;} }RestController public class UserController {private static MapString, User map new HashMap();GetMapping(/register)public String register(User user) {MapString, Object claims new HashMap();claims.put(USER_INFO_ID, user.getId());claims.put(USER_INFO_USERNAME, user.getUsername());claims.put(JWT_CREATE_TIME, new Date());String token JwtUtil.createToken(claims);map.put(token, user);return /active?jwt token;}public void active(String jwt) {User user map.get(jwt);if (user ! null JwtUtil.validateToken(jwt)) {map.remove(jwt);System.out.println(active);} else {System.out.println(param 不合法 );}} }
http://www.pierceye.com/news/473304/

相关文章:

  • 天凡建设股份有限公司网站苍山网站建设
  • 如何新建网站dw线下推广的渠道和方法
  • 网站友链wordpress火车头发布
  • 青海网站维护公司自己的网站叫什么
  • 微网站 淘宝客wordpress备案号放置
  • html5 手机网站 模版网站信息员队伍建设
  • 基金会网站开发方案政务公开网站建设重点
  • 影视网站制作网页游戏的软件
  • 企业做网站的费用如何科目青色网站欣赏
  • 做视频网站怎么赚钱的网站开发流程的三个部分
  • 牡丹江市建设行业协会网站广西住房城乡建设厅网站首页
  • 重庆网站关键词排名优化免费网页代理的推荐
  • 定制型网站怎么做重庆软件开发公司有哪些
  • 自适应型网站建设网站建设搭建是什么意思
  • 网站建设能够不同地方网址大全12345
  • 做网批那个网站好校园网站界面建设
  • 免费网站建设php济南网站建设公司官网
  • 徐汇网站推广网络营销的四个特点
  • 简易做网站wordpress插件tag
  • 红酒 公司 网站建设青岛安装建设股份公司网站
  • 小米路由hd 做网站营销型网站策划 建设的考试题
  • 运河网站制作自主建站平台
  • 万网 网站建设合同最好的网站开发语言
  • 网站备案密码收不到典当 网站
  • 东莞网站建设推广服务网站建设开票单位
  • 贵港公司做网站东莞凤岗企业网站建设推广
  • 网站制作过程中碰到的问题微信怎么做链接推广产品
  • 做网站留后门是怎么回事视频网站开发需求分析
  • 关于做网站的了解点电子商务应用平台包括哪些
  • 垂直门户网站都有什么网站首页index.html