• javax.crypto.BadPaddingException: Given final block not properly padded. Suc


    在在进行token加密解密的时候报错:

    javax.crypto.BadPaddingException: Given final block not properly padded. Suc
    

    然后百度一下:
    对着这哥们的修改一波:
    https://www.cnblogs.com/zempty/p/4318902.html
    主要就是修改加密部分:
    在这里插入图片描述
    在linux上面 错误部分:

    private Key initKeyForAES(String key) throws NoSuchAlgorithmException {
            if (null == key || key.length() == 0) {
                throw new NullPointerException("key not is null");
            }
            SecretKeySpec key2 = null;try {
                KeyGenerator kgen = KeyGenerator.getInstance("AES");
                kgen.init(128, new SecureRandom(key.getBytes()));
                SecretKey secretKey = kgen.generateKey();
                byte[] enCodeFormat = secretKey.getEncoded();
                key2 = new SecretKeySpec(enCodeFormat, "AES");
            } catch (NoSuchAlgorithmException ex) {
                throw new NoSuchAlgorithmException();
            }
            return key2;
    
        }
    

    修改后部分:

    private Key initKeyForAES(String key) throws NoSuchAlgorithmException {
            if (null == key || key.length() == 0) {
                throw new NullPointerException("key not is null");
            }
            SecretKeySpec key2 = null;
            SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
            random.setSeed(key.getBytes());
            try {
                KeyGenerator kgen = KeyGenerator.getInstance("AES");
                kgen.init(128, random);
                SecretKey secretKey = kgen.generateKey();
                byte[] enCodeFormat = secretKey.getEncoded();
                key2 = new SecretKeySpec(enCodeFormat, "AES");
            } catch (NoSuchAlgorithmException ex) {
                throw new NoSuchAlgorithmException();
            }
            return key2;
    
        }
    

    下面是我自己修改的,也是网上找的工具类,比较复杂…
    在这里插入图片描述

    世界上所有的不公平都是由于当事人能力不足造成的.
  • 相关阅读:
    Android学习(九) SharedPreferences
    Android学习(八) 打开Activity
    Android学习(七) Android实现计算器
    Android学习(六) 文本框边框
    Android学习(五) 圆角实现(转)
    Android学习(四) Layout五大布局
    Android学习(三) 自动完成的使用
    SQL Server中的三种物理连接操作
    ASP.NET实现大文件下载
    ASP.NET上传大文件的问题
  • 原文地址:https://www.cnblogs.com/javayida/p/13346810.html
Copyright © 2020-2023  润新知