【问题标题】:Why is sun.misc discouraged for use?为什么不鼓励使用 sun.misc?
【发布时间】:2012-07-08 00:02:32
【问题描述】:

我一直在sun.misc 中使用BASE64Encoder 和BASE64Decoder;我正在使用 Eclipse 并且不得不转向警告,因为默认情况下只能访问它。

这些课程完美无缺,但在我的工作中,我阅读了很多不应该使用 sun.misc 的地方,但没有人说明适当的理由。

我应该远离sun.misc,为什么?

【问题讨论】:

  • “加密”? Base64 与 Rot13 一样安全,即经常用头撞墙的人在看到它时可能会感到困惑,但对于其他任何人来说,“破解”并注意到它是微不足道的。由于从 Java5 左右(JAXB 包)开始,Java 中就有受支持的 Base64 编码器,因此确实没有理由使用 sun/oracle interna。
  • 我希望当您说“加密”时,您指的不是 Base64。这是一种编码方案,不是加密,也不需要破解,只需解码即可。
  • 我知道。使用带有 AES 的 Cipher 将其与 secretKeySpec 合并,这就是我最后说的原因。
  • 我找到了 sun.misc 的一个很好的替代方案,org.apache.commons.codec。* commons.apache.org/codec/index.html 每当我导出项目时,我只是用它导出 commons.codec 的存档,避免将来出现问题已弃用。
  • 由于Java 8 provided a supported (public) encoder,不需要使用该类。

标签: java package base64


【解决方案1】:

没有承诺会继续支持这些类;在任何版本中,它们可能会在不发出警告的情况下从 JDK 中删除。

此外,并非所有 JDK 都有这些类,因此您的代码可能无法在所有平台上运行,这与 java 的“编译一次,随处运行”理念背道而驰。

【讨论】:

  • 谢谢,正是我需要的。是否有我错过的仍然支持的 BASE64Encoder/Decoder 的替代方案?
  • @user1509396 javax.xml.bind.DatatypeConverter 从 java5 或 6 开始就有静态方法
猜你喜欢
  • 2015-02-03
  • 1970-01-01
  • 2012-10-03
  • 2018-11-26
  • 1970-01-01
  • 2018-06-11
相关资源
最近更新 更多