java.lang.IllegalArgumentException: Last unit does not have enough valid bits解决方案

使用别人封装好的 JwtUtil 的工具类时,自定义设置秘钥明文,启动后报错:

//有效期为
    public static final Long JWT_TTL = 60 * 60 *1000L;// 60 * 60 *1000  一个小时
    //设置秘钥明文
    public static final String JWT_KEY = "mhqfl";

    public static String getUUID(){
        String token = UUID.randomUUID().toString().replaceAll("-", "");
        return token;
    }

报错信息:

Exception in thread "main" java.lang.IllegalArgumentException: Last unit does not have enough valid bits
	at java.util.Base64$Decoder.decode0(Base64.java:734)
	at java.util.Base64$Decoder.decode(Base64.java:526)
	at java.util.Base64$Decoder.decode(Base64.java:549)
	at org.example.util.JwtUtil.generalKey(JwtUtil.java:86)
	at org.example.util.JwtUtil.getJwtBuilder(JwtUtil.java:52)
	at org.example.util.JwtUtil.createJWT(JwtUtil.java:35)
	at org.example.util.JwtUtil.main(JwtUtil.java:108)

报错信息整整齐齐,如图所示,在进行base64加密和解密的过程中会出现这个问题,报错网上找了一些文章,根本原因为:编码后的字符串长度不符合要求(要求长度是4的倍数)

所以,这里我设置的秘钥明文有问题,最初设置的为  mhqfl  ,我将 mhqfl 改为 mhqfly,再次执行正常生成 jwt

eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI4ZTllMGMzOWU4MWI0MTQ4OGFmZmE1OWRkN2RhNzgyZSIsInN1YiI6IjEyMzQiLCJpc3MiOiJtaCIsImlhdCI6MTY2OTIwNzc4MSwiZXhwIjoxNjY5MjExMzgxfQ.zKeEfgrU4_qeOt1FQ_M4SqQGJvwbYybEGuucTcx1GwE

我又将 密钥明文改为  1-10 位的字符串,发现,1位和5位都不能正常执行,真坑!最后就用了6位。文章来源地址https://uudwc.com/A/BveZv

原文地址:https://blog.csdn.net/m0_47743175/article/details/128007485

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月12日 06:14
Pytorch中报错RuntimeError: The size of tensor a (60) must match the size of tensor b (56)
下一篇 2023年09月12日 06:15