aes-256-cbc java php

AES-256-CBC是一种对称加密算法,在Java和PHP中都可以使用。

Java中可以使用javax.crypto包中的Cipher类来实现AES-256-CBC加密。示例代码如下:

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class AES256 {
    public static byte[] encrypt(byte[] key, byte[] iv, byte[] data) throws Exception {
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        SecretKeySpec secretKey = new SecretKeySpec(key, "AES");
        IvParameterSpec ivSpec = new IvParameterSpec(iv);
        cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivSpec);
        return cipher.doFinal(data);
    public static byte[] decrypt(byte[] key, byte[] iv, byte[] data) throws Exception {
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        SecretKeySpec secretKey = new SecretKeySpec(key, "AES");
        IvParameterSpec ivSpec = new IvParameterSpec(iv);
        cipher.init(Cipher.DECRYPT_MODE, secretKey, ivSpec);
        return cipher.doFinal(data);

在PHP中可以使用openssl_encrypt和openssl_decrypt函数来实现AES-256-CBC加密。示例代码如下:

$plaintext = "example";
$key = "0123456789abcdef0123456789abcdef";
$iv = "0123456789abcdef";
$ciphertext = openssl_encrypt($plaintext, "aes-256-cbc", $key, OPENSSL_RAW_DATA, $iv);
echo $ciphertext . "\n";
$decrypted = openssl_decrypt($ciphertext, "aes-256-cbc", $key, OPENSSL_RAW_DATA, $iv);
echo $decrypted . "\n";

请注意,在使用AES-256-CBC加密时,需要使用256位密钥(32个字节)和IV(16个字节)。

  • xmutzlq
    5年前
  •