gpt4 book ai didi

java - Android 字符编码与 Java 字符编码

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

在 Android 中,我有一个文本字符串,我以这种方式读取(其字节):

String b = "7af18klmo02";
byte[] b=udid.getBytes("UTF-8");

此后,我使用公钥以这种方式加密字符串:

c = Cipher.getInstance("RSA/ECB/NoPadding");
c.init(Cipher.ENCRYPT_MODE, pubKeyNew);
encodeFile = c.doFinal(b);

之后,我尝试以这种方式在控制台上打印出“加密结果”:

String criptato = null;
try {
criptato = new String(encodeFile, "UTF8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println("ENCRYPTED STRING: "+criptato);
System.out.println("LENGTH: "+criptato.length());

我得到的是:

ENCRYPTED STRING: (unreproducible characters)
LENGTH: 244

输出控制台中有很多不可读的字符。我无意更改它们,并且我认为应该使用一些特定的编码来避免这种情况。

但是当我通过 NFC 使用 NDEF 消息发送加密字符串时,我在 Java 端获得了一个我无法理解的不同“字符串”:

\x12\t\xc7NL\xb9\xee\xb3\xae\xe4\xa5\xe5\x88\x93\xd6\\=S\xff\xa0'\xf1\xd0\x87\x8bF\xb0\x0cT!\xd6\xca0\x8b\xe5\x13\xfd\x85\xc3=Z,u1\x14}d\x0b5\xe7\x0bBY\xe7$\xee\xc0Z\x150;r\xfa\xce\x93\x90\x0b\xdas\xe6o\xe8\x954._\x93\xa4\xc2\x06\xe3\x84\xf5\xdbw\x91\xd4'%\xf71\xf3B\x9eA=f\r\xaeu\xe5m\x1en\xdaw\x12\xad+\xfe\xb2\x91;\xbe\t\x1dTd\xf5m\t2\xafl<v\xf0\x06\x98)2]\xbeV\x86\xa7\xe7\xe6\xc3\x1f*b\x8c&\xd8ho\x18\x8a;\x8f\x8cW\xb6\x88A\xc9`^\xc2>\xfcQ\x07\x86\xb3\x82\x16\x8b\xed?\xae\xb0\x9bT<\x84y4/\xef\xf9j\xf2\xff\x17\x8d\xfddQN\x84\x97\xf2z\x88RJtw\xe2F5\xcd=l`\x89\xeaN\x86a\xde\xa4\xdb\xb1\x15x\xe4\xf0.\x06\x03\x16|\xfee\xbf\x8a\x81_\x86\xbc\x83\xd9 \xbc;\x16V.]\xb4\xf9\t>?{\xcdF\xa8\x82\x08\xe0\\L

LENGTH: 700

我在 Ubuntu 13.04 下运行

这是 ISO 8859-15 编码还是什么?

为什么最终长度是 700 而不是原来的 244?

如何将这些字符转换为 UTF-8,以便解密它们以获得原始字符串?

非常感谢任何帮助。

最佳答案

这是损坏的代码:

criptato = new String(encodeFile, "UTF8"); 

encodeFile 的内容不是 UTF-8 编码文本。它不是任何编码的文本 - 它是任意二进制数据。当您有任意二进制文件时,不要使用 String 构造函数将 byte[] 转换为 String数据。

而是将其转换为十六进制或 base64。它们都明确设计用于对 ASCII 文本中的任意二进制数据进行编码,以便稍后可以将其解码为原始二进制数据。

关于java - Android 字符编码与 Java 字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31070753/

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