2

暗号化を試しているときに、GAEでこれに遭遇しました。「sun.misc.BASE64EncoderはGoogleAppEngineのJavaランタイム環境ではサポートされていません」

誰かが私がどのパッケージを使うべきかについて助けてもらえますか?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;
}



}
4

1 に答える 1

3

CommonsCodecを試すことができます。Base64のエンコードとデコードを提供するBase64クラスがあります。

sun.*パッケージは、サポートされているパブリックインターフェイスの一部ではありません。詳細については、この記事をご覧ください。

于 2012-10-08T05:05:35.940 に答える