gpt4 book ai didi

java - 将字符串编码为 Base64 的替代 Java 方法

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

在 C# 中,我可以将字符串传递给 Convert.FromBase64String(String string),它返回一个 byte[]。以下面的代码为例:

string key = "lRixPxNRmNOTxB2npoa5zCZR2I/GkuCndWtcRS/w4CI=";
byte[] KeyBytes = Convert.FromBase64String(key);
Console.WriteLine(KeyBytes.Length); //output 32

如果我使用 java.util.Base64 库在 java 中尝试同样的事情,它看起来像这样:

String key = "lRixPxNRmNOTxB2npoa5zCZR2I/GkuCndWtcRS/w4CI=";
byte[] base64KeyBytes = Base64.getEncoder().encode(key.getBytes(UTF_8));
System.out.println(base64KeyBytes.length); //output 60

Java encode 方法需要一个 byte[] 类型作为参数,我认为这就是我的问题的根源。

Java 有没有办法产生与 C# 相同的输出?

最佳答案

方法Convert.FromBase64String.NET用于解码将base64编码的字符串恢复为纯文本。这是正确的,因为您的 key字符串采用 Base64 编码。

在您的 Java 中代码摘录,相反,您尝试使用 encode 对已经进行 Base64 编码的字符串进行编码方法...当您应该解码它时。为此,请使用以下代码:

String key = "lRixPxNRmNOTxB2npoa5zCZR2I/GkuCndWtcRS/w4CI=";
byte[] base64KeyBytes = Base64.getDecoder().decode(key);
System.out.println(base64KeyBytes.length); // 32

您也可以使用android.util.base64如下:

String key = "lRixPxNRmNOTxB2npoa5zCZR2I/GkuCndWtcRS/w4CI=";
byte[] base64KeyBytes = Base64.decode(key, Base64.DEFAULT);
System.out.println(base64KeyBytes.length); // 32

关于java - 将字符串编码为 Base64 的替代 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47934148/

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