java.lang.Error:未解决的编译问题:sun.misc.BASE64Decoder无法解析为一种类型

时间:2019-12-27 05:51:37

标签: java servlets

在tomcat9服务器上编译时出现错误:

  

严重:带有路径的上下文中servlet [sign_in]的Servlet.service()   [/ Eduinq123]引发了异常[Servlet执行引发了异常]   根本原因java.lang.Error:未解决的编译问题:     sun.misc.BASE64Decoder无法解析为类型

package encryption;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.KeySpec;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.PBEParameterSpec;

public class Encryption_Class {

    Cipher ecipher;
   Cipher dcipher;
   private String   key="eleaon8547";
   public String getKey()
   { 
    return key;
    }
   // 8-byte Salt
   byte[] salt = {
       (byte) 0xA9, (byte) 0x9B, (byte) 0xC8, (byte) 0x32,
       (byte) 0x56, (byte) 0x35, (byte) 0xE3, (byte) 0x03
   };
   // Iteration count
   int iterationCount = 19;
   public Encryption_Class() { 

   }

   /**
    * 
    * @param secretKey Key used to encrypt data
    * @param plainText Text input to be encrypted
    * @return Returns encrypted text
    * 
    */
   public String encrypt(String secretKey, String plainText) 
           throws NoSuchAlgorithmException, 
           InvalidKeySpecException, 
           NoSuchPaddingException, 
           InvalidKeyException,
           InvalidAlgorithmParameterException, 
           UnsupportedEncodingException, 
           IllegalBlockSizeException, 
           BadPaddingException{
       //Key generation for enc and desc
       KeySpec keySpec = new PBEKeySpec(secretKey.toCharArray(), salt, iterationCount);
       SecretKey key = SecretKeyFactory.getInstance("PBEWithMD5AndDES").generateSecret(keySpec);        
        // Prepare the parameter to the ciphers
       AlgorithmParameterSpec paramSpec = new PBEParameterSpec(salt, iterationCount);

       //Enc process
       ecipher = Cipher.getInstance(key.getAlgorithm());
       ecipher.init(Cipher.ENCRYPT_MODE, key, paramSpec);     
       String charSet="UTF-8";       
       byte[] in = plainText.getBytes(charSet);
       byte[] out = ecipher.doFinal(in);
       String encStr=new sun.misc.BASE64Encoder().encode(out);//Here I  get error.
       return encStr;
   }
    /**     
    * @param secretKey Key used to decrypt data
    * @param encryptedText encrypted text input to decrypt
    * @return Returns plain text after decryption
    */
   public String decrypt(String secretKey, String encryptedText)
    throws NoSuchAlgorithmException, 
           InvalidKeySpecException, 
           NoSuchPaddingException, 
           InvalidKeyException,
           InvalidAlgorithmParameterException, 
           UnsupportedEncodingException, 
           IllegalBlockSizeException, 
           BadPaddingException, 
           IOException{
        //Key generation for enc and desc
       KeySpec keySpec = new PBEKeySpec(secretKey.toCharArray(), salt, iterationCount);
       SecretKey key = SecretKeyFactory.getInstance("PBEWithMD5AndDES").generateSecret(keySpec);        
        // Prepare the parameter to the ciphers
       AlgorithmParameterSpec paramSpec = new PBEParameterSpec(salt, iterationCount);
       //Decryption process; same key will be used for decr
       dcipher=Cipher.getInstance(key.getAlgorithm());
       dcipher.init(Cipher.DECRYPT_MODE, key,paramSpec);
       byte[] enc = new sun.misc.BASE64Decoder().decodeBuffer(encryptedText); // Here I get error in eclipse id.
       byte[] utf8 =dcipher.doFinal(enc);
       String charSet="UTF-8";     
       String plainStr = new String(utf8, charSet);
       return plainStr;
   } 
}

我应该做些什么来克服,请帮助。谢谢

0 个答案:

没有答案