Google App Engine的Java运行时环境不支持sun.misc.BASE64Encoder

时间:2012-10-08 05:01:49

标签: java google-app-engine base64

在尝试加密时,我在GAE中遇到了这个问题 “Google App Engine的Java运行时环境不支持sun.misc.BASE64Encoder”

我可以使用哪个包帮助任何人吗? 我正在尝试获得AES加密。 这是我正在使用的代码。

import java.security.*;
import java.security.spec.InvalidKeySpecException;
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;


import sun.misc.*;

public class AESencrp {
private static final String ALGO = "AES";
private static final byte[] keyValue = 
    new byte[] { 'T', 'h', 'e', 'B', 'e', 's', 't','S', 'e', 'c', 'r','e', 't', 'K', 'e', 'y' };

public static String encrypt(String Data) throws Exception {
    Key key = generateKey();
    Cipher c = Cipher.getInstance(ALGO);
    c.init(Cipher.ENCRYPT_MODE, key);
    byte[] encVal = c.doFinal(Data.getBytes());
    String encryptedValue = new BASE64Encoder().encode(encVal);
    return encryptedValue;
}

public static String decrypt(String encryptedData) throws Exception {
    Key key = generateKey();
    Cipher c = Cipher.getInstance(ALGO);
    c.init(Cipher.DECRYPT_MODE, key);
    byte[] decordedValue = new BASE64Decoder().decodeBuffer(encryptedData);
    byte[] decValue = c.doFinal(decordedValue);
    String decryptedValue = new String(decValue);
    return decryptedValue;
}

private static Key generateKey() throws Exception {
    Key key = new SecretKeySpec(keyValue, ALGO);
    return key;
}



}

1 个答案:

答案 0 :(得分:3)

您可以尝试Commons Codec。有一个类Base64提供Base64编码和解码。

sun.*个包不是受支持的公共接口的一部分。有关详细信息,请查看此article