java中使用jwt_Java实现JWT

package com.hthl.jwt;

import java.security.InvalidKeyException;

import java.security.NoSuchAlgorithmException;

import javax.crypto.Mac;

import javax.crypto.spec.SecretKeySpec;

import org.apache.commons.codec.binary.Base64;

public class JwtDemo {

private static final String MAC_INSTANCE_NAME = "HMacSHA256";

public static String Hmacsha256(String secret, String message) throws NoSuchAlgorithmException, InvalidKeyException {

Mac hmac_sha256 = Mac.getInstance(MAC_INSTANCE_NAME);

SecretKeySpec key = new SecretKeySpec(secret.getBytes(), MAC_INSTANCE_NAME);

hmac_sha256.init(key);

byte[] buff = hmac_sha256.doFinal(message.getBytes());

return Base64.encodeBase64URLSafeString(buff);

}

// java jwt

public static void testJWT() throws InvalidKeyException, NoSuchAlgorithmException {

String secret = "eerp";

String header = "{\"type\":\"JWT\",\"alg\":\"HS256\"}";

String claim = "{\"iss\":\"cnooc\", \"sub\":\"yrm\", \"username\":\"yrm\", \"admin\":true}";

String base64Header = Base64.encodeBase64URLSafeString(header.getBytes());

String base64Claim = Base64.encodeBase64URLSafeString(claim.getBytes());

String signature = Hmacsha256(secret, base64Header + "." + base64Claim);

String jwt = base64Header + "." + base64Claim + "." + signature;

System.out.println(jwt);

}

public static void main(String[] args) throws Exception{

testJWT();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值