import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.util.Arrays;
import java.util.Base64;
public class Main {
public static void main(String[] args) {
String amountStr = "123456";
String AES_IV = "05U1GlzbvBmS9UVz+out4Q==";
String AES_KEY = "D5M2+rt7out0Oc23K+YqYr==";
try {
String str = EncryptUtil.AESEncryptEncode(amountStr,AES_IV,AES_KEY);
System.out.println(str); // 这里输出:oks9F0DqTtVWvAZeFOaaVw==
} catch(Exception e) {
}
}
}
class EncryptUtil {
private static final String ENCODE = "UTF-8";
private static final String AES = "AES";
private static final String CIPHER_ALGORITHM = "AES/CBC/PKCS5Padding";
/**
* AES加密
* @param content 加密内容
* @param AES_IV 加密偏移量
* @param AES_KEY 加密密钥
* @return 密文
* @throws Exception 加密过程中出现的异常
*/
public static String AESEncryptEncode(String content,String AES_IV,String AES_KEY) throws Exception{
Base64.Decoder decoder = Base64.getDecoder();
byte[] keyByte = decoder.decode(AES_KEY);
int base = 16;
if (keyByte.length % base != 0) {
int groups = keyByte.length / base + 1;
byte[] temp = new byte[groups * base];
Arrays.fill(temp, (byte) 0);
System.arraycopy(keyByte, 0, temp, 0, keyByte.length);
keyByte = temp;
}
SecretKeySpec secretKeySpec = new SecretKeySpec(keyByte,AES);
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE,secretKeySpec,new IvParameterSpec(decoder.decode(AES_IV)));
byte[] result = cipher.doFinal(content.getBytes(ENCODE));
return Base64.getEncoder().encodeToString(result);
}
}
PHP 有方法可以进行 AES 加密的
https://www.php.cn/php-ask-489886.html#:~:text=%E5%9C%A8PHP%E4%B8%AD%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%88%A9%E7%94%A8%E2%80%9Copenssl_encrypt,%28%29%E2%80%9D%E5%87%BD%E6%95%B0%E5%AE%9E%E7%8E%B0aes%E5%8A%A0%E5%AF%86%EF%BC%8C%E5%8F%AA%E9%9C%80%E8%A6%81%E5%B0%86%E5%8F%82%E6%95%B0%E4%B8%AD%E5%8A%A0%E5%AF%86%E6%96%B9%E6%B3%95%E8%AE%BE%E7%BD%AE%E4%B8%BA%E2%80%9CAES-128-ECB%E2%80%9D%E5%8D%B3%E5%8F%AF%EF%BC%8C%E8%AF%AD%E6%B3%95%E4%B8%BA%E2%80%9Copenssl_decrypt%20%28%E5%8A%A0%E5%AF%86%E6%98%8E%E6%96%87%2C%27AES-128-ECB%27%2C%E5%8A%A0%E5%AF%86%E5%AF%86%E9%92%A5%2C%E6%95%B0%E6%8D%AE%E6%A0%BC%E5%BC%8F%29%E2%80%9D%E3%80%82