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