我有一个要加密的字节数组,然后转换为字符串,以便可以传输。 当我收到字符串时,我必须将字符串转换回字节数组,以便可以对其进行解密。 我检查了接收到的字符串是否与发送的字符串(包括长度)匹配,但是当我使用诸如str.getBytes()之类的东西将其转换为字节数组时,它与我的原始字节数组不匹配。

示例输出:

SENT: WzShnf/fOV3NZO2nqnOXZbM1lNwVpcq3qxmXiiv6M5xqC1A3

SENT STR: [B@3e4a9a7d

RECEIVED STR: [B@3e4a9a7d

RECEIVED: W0JAM2U0YTlhN2Q=

任何想法如何将接收到的字符串转换为与发送的字节数组匹配的字节数组?

谢谢

要将String转换为Byte Array,请使用以下命令:String stringToConvert ="此String的长度为76个字符,将转换为字节数组。" byte [] theByteArray = stringToConvert.getBytes();

W0JAM2U0YTlhN2Q =是[B @ 3e4a9a7d]的Base64,它看起来像Java中字节数组的String表示形式。 如果您自己执行字节操作,请仔细检查它,因为您可能发送了错误的数据。

out是我的字节数组,打印时给出了示例输出的第一行。 out.toString()绝对给了我[B @ 3e4a9a7d

查看代码(部分)会很有帮助

stackoverflow.com/questions/17577887/

您使用了array.toString(),其实现方式如下:

return"[B@" + Integer.toString(this.hashCode(), 16);

(实际上,它是从Object继承定义的,而@之前的部分只是getClass().getName()的结果。)

并且这里的hashCode不依赖于内容。

而是使用新的String(数组,编码)。

当然,这仅适用于实际上可表示为Java字符串(然后包含可读字符)的字节数组,不适用于任意数组。建议像Bozho一样最好使用base64(但请确保在通道的两侧都使用它)。

谢谢,这是解决问题的快速方法

看起来像Base64。看一下commons-codec Base64类。

我确实尝试过使用sun.misc.BASE64Decoder,我认为它非常相似,而且似乎对我没有用

@Mitch尝试string.getBytes("ISO-8859-1"),然后将其作为构造函数的扩展名传递。

@Mitch不使用sun.*包中的任何类。 它们是专有API,可以随时删除。 使用其他任何公开实现,例如Bozho建议的实现。

您不能只在两台不同的计算机上使用getBytes(),因为getBytes使用平台的默认字符集。

使用指定的字符集(即UTF-8)对数组进行解码和编码,以确保获得正确的结果。

首先,通过执行以下操作将字节数组转换为适当的字符串

String line= new String(Arrays.toString(your_array))

然后发送并使用下面的功能

public static byte[] StringToByteArray(String line)

{

String some=line.substring(1, line.length()-1);

int element_counter=1;

for(int i=0; i

{

if (some.substring(i, i+1).equals(","))

{

element_counter++;

}

}

int [] comas =new int[element_counter-1];

byte [] a=new byte[element_counter];

if (a.length==1)

{

a[0]= Byte.parseByte(some.substring(0));

}

else

{

int j=0;

for (int i = 0; i < some.length(); i++)

{

if (some.substring(i, i+1).equals(","))

{

comas[j]=i;

j++;

}

}

for (int i=0; i

{

if(i==0)

{

a[i]=Byte.parseByte(some.substring(0, comas[i]));

}

else if (i==element_counter-1)

{

a[i]=Byte.parseByte(some.substring(comas[comas.length-1]+2));

}

else

{

a[i]=Byte.parseByte(some.substring(comas[i-1]+2, comas[i]));

}

}

}

return a;

}

java字符串转换成字节数组_将Java字符串转换为字节数组相关推荐

  1. java 文字转换成语音 代码_【Java】将文本转化成语音

    [Java]将文本转化成语音 发布时间:2018-05-07 21:45, 浏览次数:540 , 标签: Java 1.需要的jar包: 2.把dll文件放在%JAVA_HOME%\bin下(注意系统 ...

  2. java自动转换需要的开头_【Java基础】Java把\u开头的Unicode编码转换成汉字

    最近工作中遇到需要调用第三方接口的需求.第三方接口返回的字符串中,会把中文转义成 \u + Unicode 的形式.因此,我需要再把 \u + Unicode 转换成汉字. 这里,我们需要认识到 Ja ...

  3. android json字符串转成json对象_在PHP中处理JSON数组以及对象

    php中文网最新课程 每日17点准时技术干货分享 在 PHP 中处理 JSON 数组以及对象 与客户端混淆的常见原因是围绕 JSON 数组和对象,以及如何在 PHP 中指定他们.特别是,问题是由空对象 ...

  4. pdf转换成excel文件_将PDF文件转换为Excel

    pdf转换成excel文件 When I got back to my office after a recent vacation, there was an email from Una, abo ...

  5. c语言求字符串转换成双精度_C语言实现把字符串中的数字转换成整数

    ===Tips:点击上方 蓝字 关注并查看历史消息===   本题实现的功能是把字符串中的数字提取转换成整型数字,例如:若输入字符串"ab56cd87",则输出结果:以%d格式输出 ...

  6. 字符串转换成整数 php,php如何将字符串转为整数

    php将字符串转为整数的方法:可以利用内置函数intval()来实现,如[$foo = "1";intval($foo);].还可以通过强制类型转换的方式来实现,如[(int)$f ...

  7. java文件打包成jar文件_将java文件打包成jar包步骤

    将mypackage包中的FrameDemo.java文件打包成可执行成jar包 步骤1:先将程序中所有类打包成一个包 编译mypackage包FrameDemo.java文件,将类文件存入D盘Jar ...

  8. java程序编译成exe文件_将java程序编译成独立运行的exe文件

    将java程序编译成独立运行的exe文件 众所周知java的程序可以"一次编译,到处运行",这个特性不错,但是实现这个特性的前提是当前的平台 必须有相应的jvm,而且如果当前平台的 ...

  9. java 中缀算术表达式转换成后缀表达式_求Java堆栈,将中缀算术表达式转换成后缀表达式。...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package lab2.lang; import java.util.ArrayList; import java.util.HashMap; impo ...

  10. 怎样把java项目转换成web项目_Eclipse中将Java项目转换成Web项目的方法

    注意: 0.点击Further configuration available,修改eclipse默认的WebContent 并修改为WebRoot,勾选Generate web.xml deploy ...

最新文章

  1. 【怎样写代码】确保对象的唯一性 -- 单例模式(二):解决方案
  2. 打印出所有的 info.plist 中的 keys、values
  3. c# point偏移_.NET 在图片上写文字出现偏移的解决
  4. Quartz-Job 详解
  5. Chrome控制台使用详解 1
  6. Matlab矩阵填充--Matlab interp2
  7. 四川大学2012年数学分析考研试题
  8. 抖音升级老年人防沉迷提醒机制 覆盖多个使用场景
  9. 华为回应“锁屏广告”事件:非官方所为
  10. 解决Ubuntu系统“无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系”的有效方法
  11. java 地牢猎手,地牢猎手5新手必看速成攻略
  12. Easy Deep Learning——卷积层
  13. Floating-Point overflow and underflow
  14. C语言 IO多路复用——poll函数
  15. jQuery 加入购物车 弹窗
  16. 恩智浦刘立冬:推动虚拟化的实现,才能进一步实现NFV的部署
  17. 2022年数字科技前沿应用趋势
  18. Unity3D---精灵图片裁剪及简单UI搭建
  19. x3650 m5U盘安装Linux,x3650 m5 u盘安装win10u盘驱动修复失败怎么办
  20. Spring Security 的 RememberMe 详解 !!!!!

热门文章

  1. MySQL数据库闭包 Closure Table 表实现
  2. bigdecimal向上取整Java_BigDecimal类
  3. mixins php,Mixins的使用
  4. 塑造公司管理方式(一)- 文化与战略
  5. 香港夜景[Canon IXUS75拍摄]
  6. 看Chat GPT解答《情报学基础教程》课后思考和习题
  7. elemet-ui图标—特殊字符的unicode编码表
  8. tensorflow中sess.run()
  9. /\/\/\/(一个脑筋急转弯?)
  10. java毕业设计洗衣美源码+lw文档+mybatis+系统+mysql数据库+调试