【问题标题】:Why are java.util.Base64 and org.apache.commons.ssl.Base64 not compatible with each other?为什么 java.util.Base64 和 org.apache.commons.ssl.Base64 不兼容?
【发布时间】:2018-01-26 03:26:03
【问题描述】:

尝试将 SAML 解码从使用 apache commons 升级为使用内置 Java 8 类。使用 Java 时失败。

有没有办法让 Java 像 apache 一样工作?

谁能解释为什么这些不同?

【问题讨论】:

  • 欢迎来到 Stack Overflow!寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建 minimal reproducible example。使用“编辑”链接改进您的问题 - 不要通过 cmets 添加更多信息。谢谢!
  • 这不是调试帮助。这是班级之间的差异。不需要示例代码。
  • 然后显示每个示例输入和输出。这将有助于我们了解您所看到的。您至少可以弄清楚您正在谈论的是哪个 Apache 实现。 (有几个,它们处理空白的方式不同。)

标签: java base64 saml-2.0 apache-commons


【解决方案1】:

区别在于各自用于解码的 RFC 规范:RFC 4648 与 RFC 2045。

要将 2045 与 Java 一起使用,请调用 Base64.getMimeDecoder().decode(),而不是 Base64.getDecoder().decode()(它使用 4648)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-04
    • 2021-09-21
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 2013-10-21
    • 2017-02-07
    • 2017-10-08
    相关资源
    最近更新 更多