gpt4 book ai didi

java - Base64 编码在 linux CentOS 终端和 Java 中给出不同的结果

转载 作者:太空狗 更新时间:2023-10-29 11:36:04 25 4
gpt4 key购买 nike

我正在尝试在 Linux CentOS 上生成一些随 secret 码并将其作为 base64 存储在数据库中。密码是'KQ3h3dEN',当我用'echo KQ3h3dEN | 转换它时base64' 结果我将得到 'S1EzaDNkRU4K'。我在 java 中有函数:

public static String encode64Base(String stringToEncode)
{
byte[] encodedBytes = Base64.getEncoder().encode(stringToEncode.getBytes());
String encodedString = new String(encodedBytes, "UTF-8");

return encodedString;
}

encode64Base("KQ3h3dEN") 的结果是 'S1EzaDNkRU4='。

所以,在这个例子中它添加了“K”而不是“=”。如何确保在 linux 上使用 base64 和在 java 中使用 base64 编码时总是得到相同的结果?

更新:更新了问题,因为我没有注意到 linux 编码字符串末尾的“K”。另外,这里还有几个例子:

  • 'echo KQ3h3dENa | base64' => result='S1EzaDNkRU5hCg==',但应该是'S1EzaDNkRU5h'
  • 回声 KQ3h3dENaa | base64' => result='S1EzaDNkRU5hYQo=',但应该是'S1EzaDNkRU5hYQ=='

最佳答案

经过几个小时的试验找到了解决方案。似乎新行已添加到我要编码的字符串中。解决方案是:回声-n KQ3h3dEN | base64

结果将与 java base64 编码相同。

关于java - Base64 编码在 linux CentOS 终端和 Java 中给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37563795/

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