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

问题描述

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();
    }

解决方案

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

解决方案二:

String bbb = new String(decryptBASE64(aaa));

已经解决,错误在这句话
BASE64还原后变成字符串bbb,bbb再获取字节数组,getbytes() 这里的字节就变了
要直接拿base64还原后的字节数组进行操作 解密就没问题了

谢谢楼上帮忙啦

时间: 2024-09-10 05:51:27

rsa-RSA加密字节改变,String与byte转出问题的相关文章

RSA/SHA1加密和数字签名算法在开放平台中的应用

RSA/SHA1加密和数字签名算法在开放平台中的应用 加密算法 加密算法分为两大类:1.对称加密算法:2.非对称加密算法. 密钥个数 加密 解密 对称加密 一个 使用密钥加密 使用同一个密钥解密 非对称加密 两个,公钥和私钥 使用其中一把密钥加密 使用另外一把密钥解密 RSA非对称加密算法 RSA是目前应用最广泛的非对称加密算法,各种语言都支持RSA算法,如Java,Python,C++(openssl),Go(openssl),PHP(openssl),Object-C,Android,jav

c#与JavaScript实现对用户名、密码进行RSA非对称加密

原文:c#与JavaScript实现对用户名.密码进行RSA非对称加密 博主最近手上这个项目呢(就是有上百个万恶的复杂excel需要解析的那个项目,参见博客:http://www.cnblogs.com/csqb-511612371/p/4885930.html),由于是一个内网项目,安全性要求很低,不需要做什么报文加密. 但是总觉得用户名密码都是明文传输,略微有点坑甲方... 想了想,那就做个RSA加密,把用户名.密码做密文传输吧...至于为什么是RSA,因为也想趁机学习一下,DES.MD5什

基于RSA的加密/解密示例C#代码

/**//* * 基于RSA的加密/解密示例C#代码 * (采用字符串作为参数)RSA_Demo2 *  * 夏春涛 Email:xChuntao@163.com  * Blog:http://bluesky521.cnblogs.com * 运行环境:.net2.0 framework *  * 备注: * 不对称算法通常用于加密少量数据,如加密对称密钥和 IV.通常, * 执行不对称加密的个人使用由另一方生成的公钥..NET Framework  * 为此目的而提供了 RSACryptoSe

漫谈iOS RSA非对称加密与解密

前言 最近公司的客户端安全性出现了严重的问题,如今这个出解决方案并自我测试验证可行性的重任落在了我的身上,学习了很多他人的文章,再经过多次讨论,最后才确定最终解决方案.笔者在这里讲讲这一经历中所需要了解的知识. iOS客户端想要加密传输数据以防被窃取,最可靠的方式莫过于使用公钥加密算法加密,使用HTTPS协议在整个传输过程中都使用了这个技术,对于未能使用HTTPS的HTTP接口,我们能否实现RSA加密呢? PHP端实现解密可参考:iOS与PHP端实现RSA非对称加密解密 提示:本篇文章只讲RSA

我的Android进阶之旅------&amp;gt;Android采用AES+RSA的加密机制对http请求进行加密

前言 未加密的抓包截图 加密之后的抓包截图 基本需求及概念 AES算法 AES基本原理及算法流程 AES算法流程 RSA算法 RSA算法基本原理及流程 RSA算法实现流程 AES与RSA相结合数据加密方案 Android端 AESRSA结合实践 基本要求 基本流程 Android端 服务器端 java版示例 更多参考 前言 最近维护公司APP应用的登录模块,由于测试人员用Fiddler抓包工具抓取到了公司关于登录时候的明文登录信息.虽然使用的是HTTPS的方式进行http请求的,但还是被Fidd

『0015』 - Solidity Types - 动态字节数组(Dynamically-sized byte array)、固定大小字节数组(Fixed-size byte arrays)、string之间的转换关系

孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链.高可用架构工程师 微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org 固定大小字节数组(Fixed-size byte arrays)之间的转换 固定大小字节我们可以通过bytes0 ~ bytes32来进行声明,固定大小字节数组的长度不可变,内容不可修改.接下来我们通过下面的代码看看固定大小字节之间的转换关系. pragma solidity ^0.4.4; contract C { b

解密-关于RSA非对称加密的问题。请各位大神帮我看下以下问题,新人求助。。。感激不尽

问题描述 关于RSA非对称加密的问题.请各位大神帮我看下以下问题,新人求助...感激不尽 关于RSA非对称加密的问题.编程语言采用的是C++ 现在需要设计一个用来加密解密程序.里面包含两个接口,一个是加密,一个是解密. rsa 对称加密是公钥和私钥进行加密,接口设计如下: int EncodeRSA(unsigned char pub_key,unsigned int pass_len, unsigned char data,unsigned int data_len,unsigned char

RSA加密或成历史 麻省理工研制出5原子量子计算机

本文讲的是 RSA加密或成历史 麻省理工研制出5原子量子计算机,当今世界上的加密技术主要依赖多位数来防止破解,但麻省的研究人员表示,已经研究出首台5原子量子计算机,让这些传统的加密技术退休是指日可待了. 研究人员使用激光脉冲把原子控制在离子阱中,以保持量子系统的稳定,这样可以使用更多的原子和激光来建立更大更快的量子计算机以分解更大的加密位数.因此,当今主流的加密技术如RSA,可被这种5原子量子计算机迎刃而解. 5原子量子计算机的开发最早可追溯到1994年,麻省理工的教授皮特.肖尔提出一个计算大数

MDA 与实现 MDA 的 Rational 工具 RSA —— RSA“尝鲜会”归来

MDA 与实现 MDA 的 Rational 工具 RSA --RSA"尝鲜会"归来   IT小混混 Mar.18, 2005   (转载请注明出处)     声明        IBM Rational工作组和UML软件工程组织联合在上海浦东软件园举办了IBM Rational 新产品"尝鲜会",作者见到了即将发布的实现MDD的Rational新品.现将作者所能感受到的东西介绍给大家,由于发文时,作者还没有拿到讲座的slice,任何与原讲座内容有出入的地方,与顾春