首页  

hutool JWT 例子     所属分类 hutool 浏览量 107
JWT由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。
头部(Header) :包含算法和令牌类型信息。
载荷(Payload) :包含用户数据和元数据。
签名(Signature) :基于头部和载荷计算得出,用于验证请求是否合法

签名计算
将编码后的头部和载荷用点(.)连接起来形成一个字符串。
使用指定的密钥对这个字符串进行签名,得到签名部分。



import cn.hutool.jwt.JWT; import cn.hutool.jwt.JWTUtil; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; Map payload = new HashMap<>(); payload.put ("id", "1"); payload.put ("name", "tiger"); String key = "123456789"; byte[] keybytes = key.getBytes(StandardCharsets.UTF_8); String str = JWTUtil.createToken(payload,keybytes); System.out.println(str); JWT jwt = JWTUtil.parseToken(str); // {"typ":"JWT","alg":"HS256"} System.out.println(jwt.getHeaders()); // {"name":"tiger","id":"1"} System.out.println(jwt.getPayload()); // HS256 HMAC-SHA256算法 System.out.println(jwt.getAlgorithm()); // null System.out.println(jwt.getSigner()); // true System.out.println(JWTUtil.verify(str,keybytes)); // false System.out.println(JWTUtil.verify(str+"a",keybytes));
常见的JWT签名算法 对称加密算法: HS256 (HMAC SHA-256) :使用共享密钥进行HMACSHA256哈希运算。 HS384 (HMAC SHA-384) :使用共享密钥进行HMACSHA384哈希运算。 HS512 (HMAC SHA-512) :使用共享密钥进行HMACSHA512哈希运算。 非对称加密算法: RS256 (SHA-256 with RSA) :使用公钥和私钥进行RSA加密和解密。 RS384 (SHA-384 with RSA) :使用公钥和私钥进行RSA加密和解密。 RS512 (SHA-512 with RSA) :使用公钥和私钥进行RSA加密和解密。 ES256 (SHA-256 with ECDSA) :使用椭圆曲线数字签名算法(ECDSA)生成公钥和私钥。 ES384 (SHA-384 with ECDSA) :使用椭圆曲线数字签名算法(ECDSA)生成公钥和私钥。 ES512 (SHA-512 with ECDSA) :使用椭圆曲线数字签名算法(ECDSA)生成公钥和私钥。 PS256 (SHA-256 with RSA PSS) :使用RSA PSS填充方式生成公钥和私钥。
sJWT(JSON Web Token springboot中使用 JWT

上一篇     下一篇
国密算法

hutool 国密算法工具类 SmUtil

JWT(JSON Web Token)

springboot jpa 实例

Java各种数据对象转换框架

java8的日期时间