gpt4 book ai didi

java - 方法字符串到字节

转载 作者:行者123 更新时间:2023-11-29 09:56:54 26 4
gpt4 key购买 nike

我整天都在寻找答案,所以终于写到这里了。我用 class crypto 加密一个字符串,得到一个 byte[]。我必须用 tostring() 将这个字节转换为字符串,以便在一个网络中上传。我需要得到这个字符串,解密并得到原始字符串。我的问题是关于 getBytes,它不会返回相同的字节 [] 来解密。

我需要将原始字符串转换为 byte[],加密,获取返回的 byte[],转换为字符串,然后将此字符串转换为 byte[] 并加密相同的 byte[]。

我尽我所能。我需要一些方法,用一个字符串,总是返回相同的 byte[] 而 getbytes 不会这样做。

我加一个例子:

      String s2="this is an example";
byte[] b1=s2.getBytes("UTF-8");
byte[] b2=s2.getBytes("UTF-8");
System.out.println("Byte s:"+b1);
System.out.println("Byte s:"+b2);

有一种方法可以从一个字符串给出相同的byte[]?使用 getBytes(至少对我而言)我获得了两个不同的 byte[]。谢谢。

最佳答案

你误解了下面这行

System.out.println("Byte s:"+b1);

这里我们在字节数组上隐式调用 toString() 方法。这返回数组的内容。而是使用:

System.out.println("Byte s:" + java.util.Arrays.toString(b1));

这将向您显示可用于比较的字节数组的内容。

您可以使用 String.getBytes(String) 方法。它返回两个不同的字节数组实例,但它们具有相同的内容。

@Test
public void testGetBytes() throws Exception {
String s2 = "this is an example";

byte[] b1 = s2.getBytes("UTF-8");
byte[] b2 = s2.getBytes("UTF-8");

Assert.assertEquals(b1, b2);
}

关于java - 方法字符串到字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8140010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com