关于java的RSA解密

「已注销」 2014-04-08 08:04:53
将一个int数据转化为byte数组,使用java自带的RSA加密(公钥)得到128字节的字节数组,然后使用私钥解密成功。
但是如果随便将一个128字节即1024位的字节数组使用RSA1024位私钥解密,结果却出错,这是为什么?有人知道吗?
报错: javax.crypto.BadPaddingException: Data must start with zero
...全文
144 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小律律 2014-04-09
  • 打赏
  • 举报
回复
跟编码格式有关,utf-8格式的一个字符占三个字节,所以对字节流分段加密的时候,i的增量必须是3的倍数。

还有关于,造成Data must start with zero 这种错误不仅仅只有这种原因,具体情况具体对待。

获取文件内容的处理小更改:

改之前:



更改后为:
小律律 2014-04-09
  • 打赏
  • 举报
回复
不好意思。贴错地方了。。。。明明看着不是这个帖子。。sorry
「已注销」 2014-04-09
  • 打赏
  • 举报
回复
引用 1 楼 huanglin02 的回复:
跟编码格式有关,utf-8格式的一个字符占三个字节,所以对字节流分段加密的时候,i的增量必须是3的倍数。 还有关于,造成Data must start with zero 这种错误不仅仅只有这种原因,具体情况具体对待。 获取文件内容的处理小更改: 改之前: 更改后为:
文不对题

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧