gpt4 book ai didi

java - byte[] 到 String 和 String 到 byte[]

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

我有一个小问题,将类型从 byte[] 更改为 String,然后从 String 更改为 byte[] 。当我使用我的代码时,它返回 RSA 错误“RSA block 数据过多”。但是当我使用原来的byte[]时,它工作得很好。

它是这样工作的:

cipherData = cipher.doFinal(cipherData);

我尝试更改数据类型:

// Byte[] to String
String encrypted = new String(cipherData, "UTF-8");
// RSA Operation
cipherData = cipher.doFinal(encrypted.getBytes());

最佳答案

这就是问题:

String encrypted = new String(cipherData, "UTF-8");

您的cipherData 不是 UTF-8 编码文本。它是任意二进制数据。因此,不要尝试将其解释为 UTF-8 文本。

相反,使用十六进制或 base64 - 其中 base64 可能是最简单的方法。我喜欢public domain iHarder base64 library :

String encrypted = Base64.encodeBytes(cipherData);
...

cipherData = Base64.decode(encrypted);

编辑:如果您当然使用 Android,则使用 built-in library :)

关于java - byte[] 到 String 和 String 到 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15817124/

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