【发布时间】: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,不需要使用该类。