2012-07-08 71 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

相關問題