升级jdk版本之后会发现,旧加密方法报错
原因是/lib/tool.jar和/lib/rt.jar从Java SE 9开始被删除
解决方法:
删除原方法中引入的包
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
替换为
import java.util.Base64.Encoder;
import java.util.Base64.Decoder;
并将旧版本的加密解密方法更换为如下写法
BASE64Encoder encoder = new BASE64Encoder();
String imagestr = encoder.encode(captcha);
BASE64Decoder decoder = new BASE64Decoder();
byte[] bytes = decoder.decodeBuffer(imagestr);
改为
Encoder encoder = Base64.getEncoder();
byte[] b = encoder. encodeToString(base64.getBytes());
Decoder decoder = Base64.getDecoder();
byte[] b = decoder.decode(base64);