无法解析符号Base64解码器(Java版本9.0.1)

无法解析符号Base64解码器(Java版本9.0.1),java,base64,des,Java,Base64,Des,当我返回Base64格式的加密或解密字符串时,它可以解析BASE64Encoder()和BASE64Dencoder()。我如何解决它 import javax.crypto.*; import java.io.*; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; class DesEncrypter { Cipher ecipher; Cipher

当我返回Base64格式的加密或解密字符串时,它可以解析BASE64Encoder()
BASE64Dencoder()。我如何解决它

import javax.crypto.*;
import java.io.*;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

class DesEncrypter {
    Cipher ecipher;
    Cipher dcipher;

public DesEncrypter(SecretKey key) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException {
    ecipher = Cipher.getInstance("DES");
    dcipher = Cipher.getInstance("DES");
    ecipher.init(Cipher.ENCRYPT_MODE, key);
    dcipher.init(Cipher.DECRYPT_MODE, key);
}

public String encrypt(String str) throws UnsupportedEncodingException, IllegalBlockSizeException, BadPaddingException {
    byte[] utf8 = str.getBytes("UTF8");
    byte[] enc = ecipher.doFinal(utf8);
    return new sun.misc.BASE64Encoder().encode(enc);
}

public String decrypt(String str) throws IOException, IllegalBlockSizeException, BadPaddingException {
    byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(str);
    byte[] utf8 = dcipher.doFinal(dec);
    return new String(utf8, "UTF8");
}

}

尝试使用java9,而不是sun。misc…:


尝试使用java9,而不是sun。misc…:


一般不应使用sun.misc。这些类是JDK的内部类,可能会被新版本的Java删除(就像这里发生的那样)

我建议使用第三方库,如Apache编解码器。有一大堆实用程序类,不需要执行您列出的任何代码

站点


文档

一般不应使用sun.misc。这些类是JDK的内部类,可能会被新版本的Java删除(就像这里发生的那样)

我建议使用第三方库,如Apache编解码器。有一大堆实用程序类,不需要执行您列出的任何代码

站点


文档

我今天在Intellij上运行JDK 8时遇到了同样的问题,maven任务无法正确编译项目,给了我同样的错误。解决方案是:我在我的环境变量上设置了JDK10文件夹。。。刚刚改为JDK8,一切都编译得很好。

今天我在Intellij上运行JDK8时遇到了同样的问题,maven任务无法正确编译项目,给了我同样的错误。解决方案是:我在我的环境变量上设置了JDK10文件夹。。。刚换成JDK8,一切都很好。

谢谢。如果输入:返回新的Base64.Encoder().encode(enc);编码器在java.util.Base64.Encoder中有一个privat访问权限?不要使用新的:Base64.Encoder.encode(byteArray),它是staticBase64.Decoder=Base64.getDecoder();字节[]b=解码器。解码;谢谢如果输入:返回新的Base64.Encoder().encode(enc);编码器在java.util.Base64.Encoder中有一个privat访问权限?不要使用新的:Base64.Encoder.encode(byteArray),它是staticBase64.Decoder=Base64.getDecoder();字节[]b=解码器。解码;