· 6 years ago · Jun 23, 2019, 06:42 PM
1public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeyException {
2
3 String header = "{\"alg\":\"HS256\",\"typ\":\"JWT\"}";
4 String payload = "{\"sub\":\"1234567890\",\"name\":\"John Doe\",\"iat\":1516239022}";
5
6 String headerBase64 = Base64.encodeBase64URLSafeString(header.getBytes());
7 String payloadBase64 = Base64.encodeBase64URLSafeString(payload.getBytes());
8
9 //Create a secret to create the signature
10 String secret = "your-256-bit-secret"; //this could be anything
11 final SecretKeySpec secret_key = new javax.crypto.spec.SecretKeySpec(StandardCharsets.UTF_8.encode(secret).array(), "HmacSHA256");
12
13 //Create the signature
14 final Mac mac = Mac.getInstance("HmacSHA256");
15 mac.init(secret_key);
16 mac.update(headerBase64.getBytes());
17 mac.update((byte)'.');
18 byte[] bytes = mac.doFinal(payloadBase64.getBytes());
19
20 //print
21 System.out.println(headerBase64);
22 System.out.println(payloadBase64);
23 System.out.println(Base64.encodeBase64URLSafeString(bytes));
24
25 }