Java加解密之RSA使用
Data must not be longer than 117 bytes異常
在利用數字證書加密時,會出現這樣的異常 :Data must not be longer than 117 bytes。app
解密時也會出現這樣的異常。ui
解決辦法是:分段加密和分段解密加密
// 加密時超過117字節就報錯。爲此採用分段加密的辦法來加密 StringBuilder sb = new StringBuilder(); for (int i = 0; i < data.length; i += 100) { byte[] doFinal = cipher.doFinal(ArrayUtils.subarray(data, i, i + 100)); sb.append(new String(doFinal)); dataReturn = ArrayUtils.addAll(dataReturn, 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();
1spa
2.net
3code