2012-07-08 72 views
2

我一直在使用eclipse中的sun.misc, 使用BASE64Encoder()和BASE64Decoder(),并且必须转向警告,因为默认情况下访问受限制。为什么sun.misc不鼓励使用?

这些类完美地工作,但在我的工作中,我读了很多地方,一个人不应该使用sun.misc,但通常没有人说出正确的理由。

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

+1

“加密”? Base64和Rot13一样安全,那是一个人用头往墙上跑的时候,往往会在看到它时感到困惑,但是对于其他人来说,“破解”并注意到它是微不足道的。自Java5或更高版本(JAXB软件包)以来,在Java中支持Base64编码器,因此实际上没有理由使用sun/oracle interna。 – Voo 2012-07-08 00:08:28

+1

我希望当你说“加密”时,你不是指Base64。这是一种编码方案,而不是一种加密,并不需要破解,而只是解码。 – oxc 2012-07-08 00:09:32

+0

我知道。使用带有AES的密码将它与secretKeySpec合并,这就是我最后说的原因。 – Rayf 2012-07-08 00:14:01

回答

5

没有承诺继续支持这些类;它们可能会在任何发行版中从JDK中删除而不会发出警告。另外,并不是所有的JDK都有这些类,所以你的代码可能不能在所有平台上运行,这违背了java“一次编译,一次运行”哲学的意图。

+0

谢谢,正是我所需要的。是否有替代BASE64Encoder /解码器仍然支持,我错过了? – Rayf 2012-07-08 00:11:53

+3

@ user1509396自java5或6以来,javax.xml.bind.DatatypeConverter'具有静态方法 – Voo 2012-07-08 00:13:33

+0

干杯,生病看那:) – Rayf 2012-07-08 00:16:22

相关问题