減少使用sun.misc.BASE64Encoder

在涉及到圖片持久化的時候會遇到這個編碼類---sun.misc.BASE64Encoder

 

這個類在jdk1.6之前是可以使用的,但在1.6之後提出警告,並在jdk9.0之後完全刪除。

 

        “網上有辦法說重新配置jre就行了,但事實上不是這麼簡單的,測試後發現,這是要看配置的jre的類型是execution environment(執行環境),還是alternate jre(替代jre)

這兩種方法中,如果是第一種就不行,因爲是執行環境,也就是不會含JDK的一些額外類,rt.jar中的很多包都會因爲jre與jdk權限不同而導致被限定權限,其中就包含了sun包。

如果是第二種方法,即JDK替代jre,這就沒問題,因爲使用的是jdk的權限,所以不會報這類的錯誤。

 

        事實上,這兩個方法都是sun公司的內部方法,並沒有在java api中公開過,所以使用這些方法是不安全的,將來隨時可能會從中去除,所以相應的應該使用替代的對象及方法。

 

那該怎麼辦?

 

其實這個類被刪是因爲:

       之前base64加密用的是sun公司的sun.misc.BASE64Encoder/BASE64Decoder,由於後面版本更新,sun公司被oracle公司收購,加密類BASE64Encoder被org.apache.commons.codec.binary.Base64替代了。

 

 

所以以後用org.apache.commons.codec.binary.Base64加密解密!

 

       對應的加密解密方法名稱會變,但那個簡單,網上搜一下之前加密解密的方法名對應現在的加密解密方法就ok了。

 

maven:

<dependency>
    <groupId>org.apache.directory.studio</groupId>
    <artifactId>org.apache.commons.codec</artifactId>
    <version>1.8</version>
</dependency>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章