php 7.2 openssl加密,PHP7.*通过openssl_encrypt实现AES加密实现php/Java互通加密/解密,清罗列出PHP和Java方法
时间: 2023-07-21 18:37:54 浏览: 187
好的,让我来列出PHP和Java的方法来实现AES加密和解密,并且支持PHP/Java之间的互通。
PHP代码:
生成密钥和初始化向量:
$key = openssl_random_pseudo_bytes(32);
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
加密数据:
$data = "Hello, World!";
$encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
解密数据:
$decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
echo $decrypted; //输出:Hello, World!
Java代码:
生成密钥和初始化向量:
SecretKey secretKey = new SecretKeySpec(key, "AES");
IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);
加密数据:
String data = "Hello, World!";
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivParameterSpec);
byte[] encrypted = cipher.doFinal(data.getBytes());
解密数据:
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
byte[] decrypted = cipher.doFinal(encrypted);
String result = new String(decrypted);
System.out.println(result); //输出:Hello, World!
以上就是使用openssl加密实现AES加密的PHP和Java代码。请注意,在加密和解密之间需要共享相同的密钥和初始化向量。如果您需要更高的安全性,可以使用公钥/私钥加密和解密。
相关推荐











