【Android】AES解密抛出异常Cipher functions:OPENSSL_internal:WRONG_FINAL_BLOCK_LENGTH

news2024/11/18 20:47:23

Java使用AES加密的时候没得问题,但是在解密的时候就出错了,一起来找找原因吧。

首先,Java运行的代码如下,使用AES加解密

Cipher cipher = Cipher.getInstance("AES/CBC/NOPadding");
//...

主要问题

可调试运行控制台抛出异常:

Cipher functions:OPENSSL_internal:WRONG_FINAL_BLOCK_LENGTH

❓看不懂英文?借助翻译工具吧

仔细看看,加密的结果字符串长度,没看出问题吧

SkBJS7W4VaQDCaHJdY97eeaZ6HdTJEyf2n9k/ovIECc=

💡再想办法,绕绕头,掉了几根头发后…

借助阅读工具看到,会发现多了一个容易忽略的换行符

SkBJS7W4VaQDCaHJdY97eeaZ6HdTJEyf2n9k/ovIECc=\n

没想到真的是跟长度有关,复制的时候没有把换行符一起带上

其它问题

报错1

Wrong IV length: must be 16 bytes long
表示用于VI加解密的密钥字符串长度必须是16位

尝试填充字符串

报错2

IV not used in ECB mode
表示用于VI加解密不要使用ECB模式

尝试改成

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");

再不看懂英文就Out了

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/946458.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Figma怎么导出源文件,超详细教程来了

Figma怎么导出源文件,超详细教程来了要说近几年话题最多的界面设计软件,Figma当之无愧。用一句话去定义Figma,它是一款基于浏览器的全能型设计工具。Figma允许设计师、开发者和其他团队成员无论身在何处,都可以共同协作创建和编辑…

FastStone Capture

FastStone Capture 简介下载安装注册 简介 FastStone Capture是一款用于屏幕截图和屏幕录制的工具。它允许用户捕捉屏幕上的内容,并将其保存为图像文件,还可以录制屏幕活动为视频文件。 FastStone Capture官网: https://www.faststone.org/FSCaptureDet…

JDK源码解析-ArrayList

1. ArrayList类 1.1 ArrayList类结构图 ArrayList 是一个用数组实现的集合,支持随机访问,元素有序且可以重复。 (1)ArrayList 是一种变长的集合类,基于定长数组实现。 (2)ArrayList 允许空值…

[Android 四大组件] --- Activity

1 Activity是什么 ​​Activity​​是一个Android的应用组件,它提供屏幕进行交互。每个Activity都会获得一个用于绘制其用户界面的窗口,窗口可以充满哦屏幕也可以小于屏幕并浮动在其他窗口之上。 一个应用通常是由多个彼此松散联系的Activity组成&…

NFTScan 正式上线 Base NFTScan 浏览器和 NFT API 数据服务

2023 年 8 月 24 号,NFTScan 团队正式对外发布了 Base NFTScan 基础设施,将为 Base 生态的 NFT 开发者和用户提供简洁高效的 NFT 数据搜索查询服务。NFTScan 作为全球领先的 NFT 数据基础设施服务商,Base 是继 Bitcoin、Ethereum、BNBChain、…

合宙Air724UG LuatOS-Air LVGL API控件--日历 (Calendar)

日历 (Calendar) LVGL 提供了一个用来选择和显示当前日期的日历控件。 示例代码 – 高亮显示的日期 highlightDate lvgl.calendar_date_t() – 日历点击的回调函数 – 将点击日期设置高亮 function event_handler(obj, event) if event lvgl.EVENT_VALUE_CHANGED then da…

Web项目与帆软11集成后通过项目访问cpt文件会弹出数据决策系统登录界面如何取消

1、登录帆软 - 数据决策系统 * 点击 :管理系统 - 模板认证 - 点击设置按钮 - 关闭 2、选择关闭单个认证 你点击后,它默认所有都是开的。你依次点击关闭,然后再把要的模板点击开启,如下图所示:第一个就表示开了认证&am…

vxe-table中树形结构

如图,同事让帮忙实现一个需求 从二级树节点开始,同时选中的只能有一个二级树节点,选中的二级树节点之下的子节点都可以被选中。否则不能被选中 直接上代码 需要注意的是,文中树状图传递的数据是打平的数据,设置代码是…

[集创赛海云捷讯杯]全国二等奖经验分享

[集创赛海云捷讯杯]全国二等奖经验分享 一.前言二.我们的作品三.小结 一.前言 笔者是研一在校生,从五月份开始和本科生一起卷集创赛,经历初赛,分赛区决赛,全国总决赛,认识了很多一起做比赛的朋友收获颇丰。今年海云杯…

记录一次可视化大屏开发

版本:echarts5.3.0 - echarts-gl2.0.8 echarts大部分问题都是版本原因,4.x和5.x区别很大,推荐^5.3.0,因为有些api需要这个版本以上才支持。另外5.1支持svg地图数据格式,与之前的一些用法截然不同,同时拓展性…

(动态规划) 剑指 Offer 60. n个骰子的点数 ——【Leetcode每日一题】

❓ 剑指 Offer 60. n个骰子的点数 难度:中等 把 n 个骰子扔在地上,所有骰子朝上一面的点数之和为 s 。输入 n,打印出s的所有可能的值出现的概率。 你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点…

国民八路参考文献:[8]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022.

国民八路参考文献:[8]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022&#xff0…

Grid布局详解-看这篇就够了

Grid网格布局的概念,和flex布局的区别 含义:它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局 区别:Gid布局与Flex布局有一定的相似性,都可以指定容器内部多个项目的位置。但是&#…

Autosar存储入门系列04_NvM的CRC比较机制及同/异步写

本文框架 0.前言1. NvM的CRC校验1.1 CRC 比较机制 2. NvM的同步写及异步写2.1 NvM的同步写2.1 NvM的异步写 0.前言 本系列是Autosar存储入门系列,希望能从学习者的角度把存储相关的知识点梳理一遍,这个过程中如果大家觉得有讲得不对或者不够清晰的地方&…

【09期】HashMap常见面试题

简介 HashMap最早出现在JDK1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,是非线程安全类,在多线程环境下可能会存在问题。 1.8版本的HashMap数据结构: 为什么有的是链表有的是红黑树? 默认链表长度大…

Postman脚本批量转接口自动化用例

1、前言 作者之前已经开发了一个生成接口用例的工具 - API接口用例生成器,即将现有的 Postman 脚本转化为接口用例。本篇介绍另一款最近刚开发并项目落地的工具,将 Postman 的 json 脚本文件可以批量转换生成接口用例 - APICase-PostmanForJSON。 2、简…

jmeter接口测试及详细步骤以及项目实战教程

在接口测试项目实战中,JMeter是一款非常强大和流行的自动化测试工具,它可以测试各种类型的应用程序,并通过采样和报告来识别性能瓶颈和API的问题。本文将为你提供一个基于实际项目的JMeter接口测试项目实战教程,指导你如何使用JMe…

驱动day10

练习 基于platform实现 设备树 myplatform_homework{compatible "hqyj,myplatform_homework"; //用于获取节点reg <0x12345678 14>;interrupt-parent <&gpiof>; //引用父节点interrupts <9 0>; //这个节点引入的中断管脚led1-gpi…

Git 简单介绍

Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 一、Git 安装 windows安装&#xff1a;进入网站 https://git-scm.com/ 安装&#xff0c;ubuntu配置&#xff1a;apt install git。当前于 Win 下已安装 Git 版本 2.40.1。 二、配置 设…

ModStartBlog v8.1.0 博客密码访问,内容编辑升级

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场&#xff0c;后台一键快速安装 …