gpt4 book ai didi

java - 签名变更

转载 作者:行者123 更新时间:2023-12-01 17:33:33 24 4
gpt4 key购买 nike

谁能建议我如何将字节数组转换为字符串?此方法不起作用:

byte [] my_array=....;
String my_string = new String (my_array);

String my_string = my_array.toString();

我想要做的是将签名转换为字符串并将其传递给另一端。但是当我使用上面的方法和方法时, my_string.getBytes() 签名发生变化,然后无法验证。

我的意思是,例如,当我执行 my_string.getBytes().toString() 时,my_string 会发生变化或 my_array 在 (new String(my_array)).getBytes()

之后发生更改

谢谢。

最佳答案

(您没有明确说明,但我假设您的字节数组是某种加密签名。)

你在这里做错了两件事:

  • 尝试直接从任意字节数组创建字符串:您的字节数组表示编码文本,因此不要那样对待它。
  • 即使它确实,您也会使用平台默认编码,这几乎总是一个坏主意。

以可逆形式将任意二进制数据处理为文本的最常见方法是使用 base64 。有一个公共(public)领域的base64 Java库here (还有很多其他免费选项):

byte[] signature = ...;
String signatureBase64 = Base64.encode(signature);

// Propagate signatureBase64 to the other side, then...

byte[] signature = Base64.decode(signatureBase64);

关于java - 签名变更,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8577064/

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