gpt4 book ai didi

java - 如何在 Java 中将 JSON 转换为 Base64 字符串?

转载 作者:行者123 更新时间:2023-11-30 00:09:49 25 4
gpt4 key购买 nike

我有一个 JsonObject (Gson) 我想在将它发送到服务器之前用 Aes256 加密这个 json,所以我必须先将它转换为 Base64

JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("command", "abc");


String body = Base64.encodeToString(jsonObject.toString().getBytes("UTF-8"), Base64.NO_WRAP);

String finalBody = aesKeyIv.encrypt(body);

但是它发送格式错误的 json,因为它无法正确转换。

编辑:这是针对 Android 的

我的加密方式:

 public String encrypt(String value) throws Exception {
byte[] encrypted = cipherEnc.doFinal(value.getBytes());
return Base64.encodeToString(encrypted, Base64.NO_WRAP);
}

最佳答案

您可以导入库:

import org.apache.commons.codec.binary.Base64;

然后你可以使用下面的代码编码成Base64:

public byte[] encodeBase64(String encodeMe){
byte[] encodedBytes = Base64.encodeBase64(encodeMe.getBytes());
return encodedBytes ;
}

对于解码你可以使用

public String decodeBase64(byte[] encodedBytes){
byte[] decodedBytes = Base64.decodeBase64(encodedBytes);
return new String(decodedBytes)
}

如果您使用的是 Java 8,那么您有 Base64类直接可用到包中:

import java.util.Base64; 

你编码成 Base64 的代码会变成:

public String encodeBase64(byte [] encodeMe){
byte[] encodedBytes = Base64.getEncoder().encode(encodeMe);
return new String(encodedBytes) ;
}

同样,您的新解码将更改为

public byte[]decodeBase64(String encodedData){
byte[] decodedBytes = Base64.getDecoder().decode(encodedData.getBytes());
return decodedBytes ;
}

关于java - 如何在 Java 中将 JSON 转换为 Base64 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48324408/

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