too much data for RSA block .关于RSA算法密钥长度/密文长度/明文长度

2023-11-04

今天在做RSA加密的时候遇到了一个这样的错误:ArrayIndexOutOfBoundsException: too much data for RSA block

查询相关资料后得知该错误是加密数据过长导致的。

加密数据长度 <= 模长-11

解决办法:将要加密的数据截取后分段加密

下面是关于RSA算法密钥长度/密文长度/明文长度的介绍

本文转自:http://blog.sina.com.cn/s/blog_76550fd7010147tp.html

1.密钥长度
rsa算法初始化的时候一般要填入密钥长度,在96-1024bits间
(1)为啥下限是96bits(12bytes)?因为加密1byte的明文,需要至少1+11=12bytes的密钥(不懂?看下面的明文长度),低于下限96bits时,一个byte都加密不了,当然没意义啦
(2)为啥上限是1024(128bytes)?这是算法本身决定的...当然如果某天网上出现了支持2048bits长的密钥的rsa算法时,你当我废话吧

2.明文长度
明文长度(bytes) <= 密钥长度(bytes)-11.这样的话,对于上限密钥长度1024bits能加密的明文上限就是117bytes了.
这个规定很狗血,所以就出现了分片加密,网上很流行这个版本.很简单,如果明文长度大于那个最大明文长度了,我就分片吧,保证每片都别超过那个值就是了.
片数=(明文长度(bytes)/(密钥长度(bytes)-11))的整数部分+1,就是不满一片的按一片算

3.密文长度
对,就是这个充满了谣言,都说密文长度为密钥长度的一半,经俺验证,密文长度等于密钥长度.当然这是不分

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

too much data for RSA block .关于RSA算法密钥长度/密文长度/明文长度 的相关文章

  • 2021 大前端技术回顾及未来展望

    2021 年大前端领域没有出现革命性的明星项目 但在各个细分的技术领域都有一定的拓展与深耕 有很多新技术或者新特性有望在 2022 年迎来爆发 在互联网 寒冬 的当下 前端技术人员唯有修炼好内功 不断壮大自身 才能更好地迎接春天的 东风 那
  • SQL常用代码

    1 按姓氏笔画排序 Select From TableName Order By CustomerName Collate Chinese PRC Stroke ci as 2 数据库加密 select encrypt 原始密码 selec
  • 数据类型和arange方法的使用

    原文转载自我的博客benym cn Numpy支持比Python更多的数字类型 数据类型 描述 bool 布尔 True或False 存储为一个字节 int 默认整数类型 与Clong相同 通常是int64或int32 INTC 与Cint
  • a-input-number change事件怎么传id

    change 变化回调 Function value number string 我们可以通过change事件 拿到当前数字 但是我们通常是列表循环的 要知道改了哪个数据的number 于是还需要拿到Id 官方没有加以说明 纠结了好久 解决
  • linux安装idea系软件创建快捷方式并解决dock栏双图标启动问题

    linux安装App并添加快捷方式 1 下载相关应用安装包 例如WebStorm勾选Linux版本 2 打开终端 打包并解压至目标文件 3 创建快捷方式 4 解决dock栏双图标问题 1 下载相关应用安装包 例如WebStorm勾选Linu
  • C++字符串操作总结

    char 与string char 属于指针类型 string是C 中的类 其底层是通过char 类型的指针来实现的 即string对象中包含了一个char 类型的成员 通过如下方式可以获取该指针成员 string str nihao da
  • vue怎么实现动画效果

    1 vue内置组件transition 动画第一步把要做动画的语句添加到transition中 其中name可以定义前缀 下面的事件在添加动画时就可以写my enter my leave to 从而可以设置不同区域具有不同的动画效果
  • 零基础上手 Midjourney,这本书帮你搞定 AI 绘画

    2022 年 8 月 一幅叫作 太空歌剧院 的画作在美国科罗拉多州博览会的一场美术比赛中获得了 数字艺术 数码摄影 类别的冠军 作者贾森 艾伦并不是一位画家 而是一位游戏公司的老板 得奖后 他在 Discord 论坛上发布称这幅画并不是他亲
  • 华为OD机试 - 流水线(Java)

    题目描述 一个工厂有m条流水线 来并行完成n个独立的作业 该工厂设置了一个调度系统 在安排作业时 总是优先执行处理时间最短的作业 现给定流水线个数m 需要完成的作业数n 每个作业的处理时间分别为t1 t2 tn 请你编程计算处理完所有作业的
  • c语言 按键 加减数,单片机:按键(使用中断)控制数码管的数字加减(c语言实...

    本实验的目的 使用中断实现通过编号为8和C的按键控制数码管数字的加减 加至15之后再循环到0 减到0之后保持0不变 include sbit WEI P2 7 sbit DUAN P2 6 void delay int t while t
  • 基于多模型的手写数字识别

    目录 开发环境 引言 MNIST 数据集介绍 全连接神经网络详解 代码实现 模型讲解 卷积神经网络 代码实现 模型讲解 深度残差网络 代码实现 模型讲解 总结 开发环境 作者 嘟粥yyds 时间 2023年6月21日 集成开发工具 PyCh
  • 力扣题---二叉树---对称二叉树

    题目链接 对称二叉树 我们先来看题目而例题 给你一个二叉树的根节点 root 检查它是否轴对称 示例 1 输入 root 1 2 2 3 4 4 3 输出 true 示例 2 输入 root 1 2 2 null 3 null 3 输出 f
  • 毕业设计-基于卷积神经网络的鸟类视频图像检索系统

    目录 前言 课题背景和意义 实现技术思路 一 相关研究 二 相关技术 三 鸟类视频图像检索模型的建立 四 实验及评估 五 总结 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一
  • mysql select查询字段_MySQL基础:SELECT查询语句

    Blog 博客园 个人 概述 SELECT语句用于从表中选取 查询数据 结果被存储在一个结果表中 称为结果集 语法格式 SELECT ALL DISTINCT DISTINCTROW HIGH PRIORITY STRAIGHT JOIN
  • Go es中使用脚本操作

    摘要 官方库 使用go向es进行数据操作脚本 紫色飞猪 博客园 摘要 排序查询 golang ElasticSearch学习 简书 摘要 go elasticSearch实战篇 二 知乎 摘要 完美起航 ES7 三 用GO搜索elastic
  • 百度Apollo学习心得:探索自动驾驶技术的前沿之旅

    文章目录 前言 一 理论学习与实践结合 二 多方资源的整合利用 三 团队合作与交流分享 四 持续学习与创新思维 总结 前言 百度Apollo是一项引领自动驾驶技术发展的开放平台 通过深度学习 感知与决策 定位与控制等关键技术 为开发者提供了
  • HCIP第九天

    OSPF的拓展配置 手工认证 在OSPF数据包交互中 邻居之间的数据报中将携带认证口令 两边认证口令相同 则意味着身份合法 OSPF的手工认证总共分为三种 1 接口认证 r5 GigabitEthernet0 0 0 ospf authen
  • Objects are not valid as a React child (found: object with keys {_isAMomentObject, _i, _f, _isUTC,

    前端报错 原因是使用了扩展运算符 扩展的数据有moment格式的数据 如下 展示改日期直接通过 的方式展示 没有使用antd的 DatePicker组件 所以导致报错 解决方式 moment格式的日期需要放入DatePicker组件才能渲染
  • 前端Vue加载中页面动画弹跳动画loading

    前端组件化开发 以Vue加载中页面动画弹跳动画为例 随着前端技术的发展 开发复杂度越来越高 传统开发方式将一个系统做成了整块应用 一个小改动或功能增加都可能引发整体逻辑的修改 导致开发效率和可维护性降低 为了解决这个问题 组件化开发成为了前
  • vue项目,使用vue-cropper进行图片的截图裁剪并上传

    1 安装依赖 npm install vue cropper 2 引入 可以单页面引入 也可以全局引入 单页面 import VueCropper from vue cropper 全局 在main js里 import VueCroppe

随机推荐

  • 【安卓学习之常见问题】google play service

    安卓学习之常见问题 google play service 系列文章目录 提示 这里是收集了安卓学习之常见问题的相关文章 安卓学习之常见问题 界面 Activity Fragment 之间的数据传递 Intent Bundle 任我飞的博客
  • dependencies devDependencies peerDependencies optionalDependencies区别

    在一个Node js项目中 package json几乎是一个必须的文件 它的主要作用就是管理项目中所使用到的外部依赖包 同时它也是npm命令的入口文件 npm 目前支持以下几类依赖包管理 dependencies devDependenc
  • 中国大学MOOC 视频字幕获取及处理方法

    最近上课需要做笔记 但是 一句句的抄字幕工作量有点大 于是查找了一此方法 尝试成功 在此记录下下 1 首先 打开你所要下载字幕的视频 如 https www icourse163 org learn NUDT 1003101005 tid
  • Error mounting /dev/loop0 at /media/root/disk【ubuntu 16.04无故报挂载失败的错】解决办法

    最近ubuntu16 04上经常报个错 开头是Error mounting dev loop0 at media root disk 忘了截图 但报错内容能看到这个 经到处翻查 在国外的某个网站 stackoverflow 上找到了一个比较
  • 中文 python_Linux与Python中文编码详解

    TL DR Linux乱码 如果之前没安装过 yum groupinstall chinese support vim etc sysconfig i18n 将LANG Zn CN UTF 8 复制到末尾 vim乱码 step1 在控制台输
  • 聊聊最近爆火的 chatgpt丨小智ai丨到底是什么?

    最近 随着人工智能技术的不断发展和应用 ChatGPT作为自然语言处理领域的一种新兴技术 引起了广泛的关注和热议 在这篇文章中 我们将聊一聊最近爆火的ChatGPT 介绍其背景 特点 应用以及挑战 从而更好地了解ChatGPT技术的本质和意
  • llseek接口函数实现

    llseek接口函数属于驱动file operation结构体内部函数的一部分 llseek函数实现的目的 为了使用用户空间的llseek 系统调用这个函数功能来移动设备的文件指针 然后读 写接口就可以对移动后的位置进行读取功能 而不是每次
  • 指针仪表角度检测和读数

    指针仪表识别的方法 主要流程是 1 检测仪表所在的位置 提取出来 该方法有两条路径实现 1 霍夫圆形检测 2 机器学习训练 2 检测仪表圆盘的位置后 用霍夫直线检测指针 3 去除无关直线干扰 提取正确的角度 4 判断指针所在的区域 下面两个
  • labview2015->matlab2015b->veristand2015s p1安装顺序

    安装完相应的软件后 安装顺序 labview2015 gt matlab2015b gt veristand2015s p1 如果两者关联成功后 运行matlab后会在matlab命令窗口前两行显示 NI VeriStand 2015 SP
  • Redis缓存击穿,缓存穿透,缓存雪崩,附解决方案

    前言 在日常的项目中 缓存的使用场景是比较多的 缓存是分布式系统中的重要组件 主要解决在高并发 大数据场景下 热点数据访问的性能问题 提高性能的数据快速访问 本文以Redis作为缓存时 针对常见的缓存击穿 缓存穿透 缓存雪崩问题做简单地说明
  • dell 台式机bios虚拟化_怎么开启VT虚拟化功能,BIOS中怎么开启虚拟技术,经验告诉你该这样...

    很多人都不知道BIOS中怎么开启虚拟技术 下面我们就一起来看看吧 操作方法 01 首先在开机的时候按住对应的键进入BIOS 组装机以主板分 华硕按F8 Intel按F12 其他品牌按ESC F11或F12 笔记本以品牌分 联想ThinkPa
  • Proxy error: Could not proxy request //sysTenant/getTenantDropDownList from localhost:9528 to http:/

    一 项目背景 提示 这里简述报错问题背景 当我们开发完前端一个功能之后运行调试时 通常前后端分离情况下 前 后端程序都运行起来之后 会出现 协议 域名 端口不一致的形况 此时前端调用后端接口时就会产生跨域问题 可以在前端设置代理解决 vue
  • 区块链技术框架

    当前主流的区块链架构包含六个层级 网络层 数据层 共识层 激励层 合约层和应用层 图中将数据层和网络层的位置进行了对调 主要用途将在下一节中详述 网络层 区块链网络本质是一个P2P Peer to peer点对点 的网络 网络中的资源和服务
  • 再战WebGoat之代码审计

    声明 好好学习 天天向上 回想首次接触webgoat已是两年前 当时可能连漏洞原理都不是很明白就开始上手靶场了 也是搜了很多文章 还用的word的方式写的草稿 惭愧惭愧 webgoat一直是我心中高质量的靶场 其实当时发布文章时 我就一直在
  • github趋势追踪 2023年5月25日

    1 text2vec text2vec是一个文本向量表征工具 它可以将文本转化为向量矩阵 这个项目实现了多种文本表征和文本相似度计算模型 如Word2Vec RankBM25 Sentence BERT和CoSENT等 使用text2vec
  • 小车PCB板视觉分拣软件

    小车PCB板视觉分拣软件 前言 赛题内容 视觉算法 算法选择 算法实现过程 读入Train并创建模板 读入Test数据 图像预处理与视觉分拣 实际效果 指定读入 顺序读入 其他 UI界面设计 数据库 DEMO分享 前言 智能制造赛是中国机械
  • Qt 中开启线程的五种方式

    作者 billy 版权声明 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 简介 在开发过程中 使用线程是经常会遇到的场景 本篇文章就来整理一下 Qt 中使用线程的五种方式 方便后期回顾 前面两种比较简单 一笔带过了 主
  • 命令行前边出现base

    问题 命令行开头出现base base lihongzhang home 原因 安装了conda引起的 默认启动命令行即自动进去conda环境 解决办法 方法1 退出conda环境 base lihongzhang home conda d
  • nodejs、npm、cnpm、yarn安装及环境配置

    一 nodejs的安装 1 官网下载对应系统安装包 https nodejs org en download 2 安装时注意修改安装目录 建议放在非C盘目录下 一路默认安装即可 3 安装完成后启动命令行工具 输入 node v npm v
  • too much data for RSA block .关于RSA算法密钥长度/密文长度/明文长度

    今天在做RSA加密的时候遇到了一个这样的错误 ArrayIndexOutOfBoundsException too much data for RSA block 查询相关资料后得知该错误是加密数据过长导致的 加密数据长度 lt 模长 11