AES加密初始化错误

时间:2013-12-09 13:34:20

标签: java encryption aes

我正在尝试为应用程序设置AES加密,Eclipse正在抛出以下错误:

"Multiple markers at this line
    - Syntax error on tokens, ConstructorHeaderName expected instead
    - Syntax error on token "(", < expected
    - Syntax error on tokens, ConstructorHeaderName expected instead"

enccipher.init(Cipher.ENCRYPT_MODE, secretkey);

deccipher.init(Cipher.DECRYPT_MODE, secretkey, new IvParameterSpec(iv));

这是我的代码:

private final byte[] salt = new SecureRandom().generateSeed(8);
SecretKeyFactory fact = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
KeySpec spec = new PBEKeySpec(null, salt, 65536, 256);
SecretKey tempsecret = fact.generateSecret(spec);
private SecretKey secret = new SecretKeySpec(tempsecret.getEncoded(), "AES");

private Cipher enccipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
enccipher.init(Cipher.ENCRYPT_MODE, secret);
private final byte[] iv = enccipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();

private Cipher deccipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
deccipher.init(Cipher.DECRYPT_MODE, secret, new IvParameterSpec(iv));

protected byte[] doEncrypt(String pass){
    return enccipher.doFinal(pass.getBytes());
}
protected String doDecrypt(byte[] ciphertext) {
    return new String (deccipher.doFinal(ciphertext), "UTF8");
}

1 个答案:

答案 0 :(得分:4)

发布您的代码 - 但我的猜测是您只是将文本输入到类主体(其中显示does not go not here)而不是内部方法(其中显示code goes here)。

public class XYZ {

   // variable and method declarations go here  
   // code does not go here

   public XYZ () {
   // code goes here
   }
}