java - 方法字符串到字节

标签 java string byte

我整天都在寻找答案,所以终于写到这里了。 我用 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/

相关文章:

java - .setOnClickListener 上的空指针异常

java - 正则表达式中的 "\\p{all}"是什么意思?

java - 将参数传递给模型类时类型不匹配

mysql - 我在 mysql 中的 str_to_date 返回 null

C 字符串处理

java - 砍掉未使用的字节数据类型

java - 使用路径变量进行 GET 映射的自定义验证

python - 如何从字符串中删除所有标点符号?

java - 从 UDP 服务器发送文件时出现问题

c++ - char数组赋值和管理