无法解析符号Base64解码器(Java版本9.0.1)
当我返回Base64格式的加密或解密字符串时,它可以解析BASE64Encoder()无法解析符号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
和
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=解码器。解码;