mq加密没问题,解密有问题

安洋~anyang 2019-05-13 03:55:37
报严重,这个是mq解密出的问题 ,我的ali.rocketmp.first.accessKey 前后都为16 位,求大佬帮解决下,虽然是严重,项目运行没问题,但是看着就想解决

cn.aia.tools.security.AESPasswordManager decryptPassword
严重: Input length must be multiple of 16 when decrypting with padded cipher
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:936)
at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:847)
at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:446)
at javax.crypto.Cipher.doFinal(Cipher.java:2164)
at cn.aia.tools.security.AESPasswordManager.decryptPassword(AESPasswordManager.java:93)
at com.fulan.application.util.loadproperties.LoadProperties.loadProperties(LoadProperties.java:80)
at aia.com.ta.PolicyServiceApplication.main(PolicyServiceApplication.java:35)
...全文
121 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fay_Q 2019-05-13
  • 打赏
  • 举报
回复
public void init(byte[] keyBytes) {

        // 如果密钥不足16位,那么就补足. 这个if 中的内容很重要
        int base = 16;
        if (keyBytes.length % base != 0) {
            int groups = keyBytes.length / base + (keyBytes.length % base != 0 ? 1 : 0);
            byte[] temp = new byte[groups * base];
            Arrays.fill(temp, (byte) 0);
            System.arraycopy(keyBytes, 0, temp, 0, keyBytes.length);
            keyBytes = temp;
        }
        // 初始化
        Security.addProvider(new BouncyCastleProvider());
        // 转化成JAVA的密钥格式
        key = new SecretKeySpec(keyBytes, KEY_ALGORITHM);
        try {
            // 初始化cipher
            cipher = Cipher.getInstance(algorithmStr);
        } catch (NoSuchAlgorithmException e) {
            LoggerUtil.logger().error("AES解密失败:{}",e);
        } catch (NoSuchPaddingException e) {
            LoggerUtil.logger().error("AES解密失败:{}",e);
        }
    }
安洋~anyang 2019-05-13
  • 打赏
  • 举报
回复
对的,输入的就是16位 ,这是在本地用的mq ,是本地的无效吗? 这个地址看了,谢谢
十八道胡同 2019-05-13
  • 打赏
  • 举报
回复
Input length must be multiple of 16 when decrypting with padded cipher 他说输入的必须是16的倍数 参考下 https://blog.csdn.net/kzcming/article/details/80019478

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧