1.添加 AESEncoder、AESDecoder、AESEncryptHandler
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
public class AESEncoder {
public static String encrypt4Aes(String content, String aesKey) {
try {
byte[] src = content.getBytes("UTF-8");
byte[] bytOut = encryptMode(src, aesKey);
return base64encode(bytOut);
} catch (Exception e3) {
}
return null;
}
public static byte[] encryptMode(byte[] src, String aesKey) {
try {
Cipher cip = Cipher.getInstance("AES"); //wBk0G/UM+QvU4QYS0JIZKw==
cip.init(Cipher.ENCRYPT_MODE, getSecretKey(aesKey));
return cip.doFinal(src);
} catch (Exception e3) {
}
return null;
}
public static String base64encode(byte[] src) {
if (src == null) {
return null;
}
return (new sun.misc.BASE64Encoder()).encode(src);
}
public static SecretKey getSecretKey(String aesKey) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException {
byte[] keybyte = getKeyByStr(aesKey);// toReplace
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
secureRandom.setSeed(keybyte);
KeyGenerator keygen = KeyGenerator.getInstance("AES");
keygen.init(secureRandom);
return keygen.generateKey();
}
public static byte[] getKeyByStr(String str) {
byte[] bRet = new byte[str.length() / 2];
for (int i = 0; i < str.length() / 2; i++) {
Integer itg = new Integer(16 * getChrInt(str.charAt(2 * i)) + getChrInt(str.charAt(2 * i + 1)));
bRet[i] = itg.byteValue();
}
return bRet;
}
public static int getChrInt(char chr) {
int iRet =