gpt4 book ai didi

java - android 将包含负数的 byte[] 转换为字符串并通过 post 发送

转载 作者:行者123 更新时间:2023-12-01 14:11:09 27 4
gpt4 key购买 nike

我一直在为此绞尽脑汁,我正在使用 BlowFish 加密我的数据,该数据(byte[])被发送到服务器,我需要将数据保存在设备上,所以我想将其作为字符串保存在我的数据库中。

当我想将 byte[] 转换为 String 时,问题就出现了,因为它包含负数。我尝试了很多字符集但都不好,java字节是无符号的....

有什么建议吗?

最佳答案

问题不在于负数,而在于您试图将加密结果(本质上是任意二进制数据)直接转换为字符串。

您应该使用十六进制或 base64 对其进行编码。当您使用 Android 时,您可以使用 Base64 类:

byte[] encryptedData = ...;
String base64 = Base64.encode(encryptedData, Base64.DEFAULT);

然后当你解密时:

String base64 = loadFromDatabase(); // Or whatever
byte[] encryptedData = Base64.decode(base64, Base64.DeFAULT);

假设您首先需要将它作为String。您应该考虑将加密数据存储为 blob。

关于java - android 将包含负数的 byte[] 转换为字符串并通过 post 发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18512378/

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