angusking1992 2015-08-13 08:01 采纳率: 50%
浏览 2898
已采纳

RSA加密字节改变,String与byte转出问题

代码如下,byte[] bb = bbb.getBytes(); 这个地方,数组bb与mi内容不一致了,导致解密失败 很多字节变为了63 请问怎么解决这个问题?
try {
byte[] tb = ts.getBytes(); //将字符串变为字节数组
byte[] mi = null;
for(int i =0;i<tb.length;i+=64){ //因为不支持117字节以上加密,所以进行分段加密
byte[] doFinal=RSATools.encryptByPublicKey(ArrayUtils.subarray(tb,i,i+64),gy);
mi = ArrayUtils.addAll(mi, doFinal);
}
System.out.println("RSA加密后------------"+new String(mi));

        String aaa = encryptBASE64(mi);
        System.out.println("\n加密后----" + aaa);
        String bbb = new String(decryptBASE64(aaa));
        System.out.println("\n"+bbb);
        byte[] bb = bbb.getBytes();
        byte[] ming = null;
        for(int i=0;i<bb.length;i+=128){
            byte[] doFinal=RSATools.decryptByPrivateKey(ArrayUtils.subarray(bb, i, i+128), sy);
            ming = ArrayUtils.addAll(ming, doFinal);
        }


        System.out.println("解密后----" + new String(ming));
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

  • 写回答

2条回答

  • oyljerry 2015-08-13 08:08
    关注

    字符串变成字符数组,是否为正确。你需要看看加密需要的数据,跟你输入的字符串类型如何转换

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况