gpt4 book ai didi

java - base64 编码字符串 : can be decoded in PHP but not Java?

转载 作者:行者123 更新时间:2023-12-04 00:51:48 32 4
gpt4 key购买 nike

有效的 PHP 代码:

$str = "528ABf4cCU5g7zKzLC2t8oze4mstEcWKErar6FbTK2Xo97bu17S8cDmEg5HlbgcLtfvKCVvJ4FnRV3R1iX1TWZIyM7T2352wsb6LUyqFXA03Fz9G6dQmhRrkWpOXAoHeU/H63LKKzcJDhNb3YI2hfsU20BcT0qkk74XKneC7D91OKY=";
echo strlen(base64_decode($str));

输出 130。

无法运行的 Java 代码:

String demo = "528ABf4cCU5g7zKzLC2t8oze4mstEcWKErar6FbTK2Xo97bu17S8cDmEg5HlbgcLtfvKCVvJ4FnRV3R1iX1TWZIyM7T2352wsb6LUyqFXA03Fz9G6dQmhRrkWpOXAoHeU/H63LKKzcJDhNb3YI2hfsU20BcT0qkk74XKneC7D91OKY=";
System.out.println(java.util.Base64.getDecoder().decode(demo).length);

抛出:

"Input byte array has wrong 4-byte ending unit" java.lang.IllegalArgumentException.

如何使 PHP 喜欢的 base64 编码字符串能够被 Java 解码?

最佳答案

demo 输入不正确 padded ;它应该以 == 而不是 = 结尾。

您可以使用更宽松的解码器,例如 Guava 的 BaseEncoding

或者,由于填充在 Base64 中是可选的,您可以在使用 java.util.Base64 解码之前去除任何尾随 = 字符。

关于java - base64 编码字符串 : can be decoded in PHP but not Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65724531/

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