读书人

Data must not be longer than 117 by

发布时间: 2013-08-04 18:26:16 作者: rapoo

Data must not be longer than 117 bytes异常 RSA加密解密内容超长报错
在使用 RSA加密解密内容时会出现这样的异常 :
Data must not be longer than 117 bytes。

解决办法是:分段加密和分段解密

// 加密时超过117字节就报错。为此采用分段加密的办法来加密 byte[] enBytes = null;for (int i = 0; i < data.length; i += 64) {  // 注意要使用2的倍数,否则会出现加密后的内容再解密时为乱码    byte[] doFinal = cipher.doFinal(ArrayUtils.subarray(data, i,i + 64));      enBytes = ArrayUtils.addAll(enBytes, doFinal);  }


// 解密时超过128字节就报错。为此采用分段解密的办法来解密StringBuilder sb = new StringBuilder();for (int i = 0; i < data.length; i += 128) {    byte[] doFinal = cipher.doFinal(ArrayUtils.subarray(data, i, i + 128));    sb.append(new String(doFinal));}dataReturn = sb.toString();

读书人网 >编程

热点推荐