“too much data for rsa block”这个错误通常出现在使用RSA加密算法对大量数据进行加密时。RSA算法是一种非对称加密算法,它有一个固有的限制,即待加密的数据块大小不能超过密钥长度(以字节为单位)减去必要的填充(padding)空间。例如,如果使用2048位的RSA密钥,那么理论上最大可以加密的数据块大小约为256字节(2048位...
including SSL/TLS, SSH, and PGP. However, when working with large amounts of data in Android, you may encounter the “too much data for RSA block” error.
否则你可能会像笔者似的遇到Java.lang.ArrayIndexOutOfBoundsException: too much data for RSA block异常。遇见这个异常,你需要先确定你给Cipher 加密的明文(或者需要解密的密文)是否过长;排除掉明文(或者密文)过长的情况,你需要考虑是不是你的Cipher 线程不安全了。
今天在做RSA加密的时候遇到了一个这样的错误:ArrayIndexOutOfBoundsException: too much data for RSA block 查询相关资料后得知该错误是加密数据过长导致的。 加密数据长度 <= 模长-11 解决办法:将要加密的数据截取后分段加密 下面是关于RSA算法密钥长度/密文长度/明文长度的介绍 本文转自:http://blog.sina.com....
企业微信会话存解密问题: 报错信息:too much data for RSA block? 年轮2022-09-08486浏览问题模块: 其他开发相关的问题public static String decryptRSA(String str, String privateKey) throws Exception { Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); Cipher rsa = Cipher....
今天在做RSA加密的时候遇到了一个这样的错误:ArrayIndexOutOfBoundsException: too much data for RSA block 查询相关资料后得知该错误是加密数据过长导致的。 加密数据长度 <= 模长-11 解决办法:将要加密的数据截取后分段加密 1.密钥长度 rsa算法初始化的时候一般要填入密钥长度,在96-1024bits间 ...
2.ArrayIndexOutOfBoundsException: too much data for RSA block 3.java.security.InvalidKeyException: Illegal key size 因为美国法律限制,JAVA默认支持AES 128 Bit 的key, 如果你计划使用 192 Bit 或者 256 Bit key, java complier 会抛出 Illegal key size Exception ...
你这个解决了吗?同问
1.too much data for RSA block问题 RSA是常用的非对称加密算法。这实际上是因为待加密的数据超长所致。 RSA所能加密的数据的长度取决于key的长度,公式如下: 数据长度= key的长度/8 - 11 比如key的长度为512 那么能加密的数据长度最大为512/8-11 = 53位,也就是要加密的字符串长度必须小于等于53 ...
当明文数据等于模大小的时候,就会开始报错:java.lang.ArrayIndexOutOfBoundsException: too much data for RSA block 上述这些限制是由RSA的算法原理决定的。 注意,这里的1024、2048可以由解析密钥获得(就是二进制下的模modulus的长度): 2、Sun时的加密数据长度限制(以2048bit的密钥为例) ...