一直以来Base64算法的加密解密都是使用sun.misc包下的BASE64Encoder及BASE64Decoder来进行的。但是这个类是sun公司的内部方法,并没有在Java API中公开过,不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用。但是在Eclipse和MyEclipse中直接使用,却找不到该类。
 
问题描述如下图:
sun.misc jar包-LMLPHP
 
解决方案:
第一步:在使用sun.misc包下的API的项目上右键选择Build Path,选择Configure Build Path
sun.misc jar包-LMLPHP
第二步:在Java Build Path窗口,点击第三个选项卡Libraries,选择JRE System Libraries,选择第一项Access rules,点击Edit
sun.misc jar包-LMLPHP
第三步:在弹出的窗口中点击Add
sun.misc jar包-LMLPHP
第四步:在Resolution后面选择Accessible选项,下面的Rule Pattern配置为**,点击OK即可。
sun.misc jar包-LMLPHP
第五步:点击OK
sun.misc jar包-LMLPHP
第六步:点击Apply,点击OK,就会看到工作空间会进行重新导入构建。
sun.misc jar包-LMLPHP
我们再来看导入sun.misc包下的BASE64Encoder这个类,完美解决。
sun.misc jar包-LMLPHP
 
其余解决方案:
也可以使用第三方提供的相应的替代的API
Apache提供的Commons Codec,简称CC
Bouncy Castle提供的Bouncy Castle,简称BC

build.gradle加入第三方依赖:

sun.misc jar包-LMLPHP

使用Gradle刷新之后:

sun.misc jar包-LMLPHP

05-02 22:09