错误:找不到或加载主类AES

时间:2019-03-19 21:59:56

标签: java intellij-idea

我试图在intelliJ中运行我的代码,但是运行它后,我看到一个错误,提示它找不到或加载主类AES,并以退出代码1完成了处理。帮助,将不胜感激!我已经加载了JDK,当我在运行配置中查看时,它说未指定模块,我也不知道到底是什么意思,因此可以提供任何帮助。谢谢。这是我的代码:

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

public class AES {

private static SecretKeySpec secretKey;
private static byte[] key;

public static void setKey(String myKey) {

    MessageDigest sha = null; try {

        key = myKey.getBytes("UTF-8");
        sha = MessageDigest.getInstance("SHA-1");
        key = sha.digest(key);
        key = Arrays.copyOf(key, 16);
        secretKey = new SecretKeySpec(key, "AES");
    }
    catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
    catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
}

public static String encrypt(String strToEncrypt, String secret) {

    try {

        setKey(secret);
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
        return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes("UTF-8")));
    }
    catch (Exception e) {

        System.out.println("Error while encrypting: " + e.toString());
    }
    return null;
}

public static String decrypt(String strToDecrypt, String secret) {

    try {
        setKey(secret);
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
        cipher.init(Cipher.DECRYPT_MODE, secretKey);
        return new String(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt)));
    }
    catch (Exception e) {

        System.out.println("Error while decrypting: " + e.toString());
    }
    return null;
}

public static void main(String[] args) {

    final String secretKey = "Secret!";
    String originalString = "Hello World!";
    String encryptedString = AES.encrypt(originalString, secretKey);
    String decryptedString = AES.decrypt(encryptedString, secretKey);
    System.out.println(originalString);
    System.out.println(encryptedString);
    System.out.println(decryptedString);
}
}

0 个答案:

没有答案