Hi! Could we please enable some services and cookies to improve your experience and our website?
Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code
<?php
// 加密函数
function encrypt($data, $appKey) {
// 随机生成 16 字节的 IV
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-128-CBC'));
// 加密数据
$encrypted = openssl_encrypt($data, 'AES-128-CBC', $appKey, OPENSSL_RAW_DATA, $iv);
// 将 IV 和加密结果合并
$combined = $iv . $encrypted;
// 进行 Base64 URL 编码并去除填充
return rtrim(strtr(base64_encode($combined), '+/', '-_'), '=');
}
// 要加密的数据
$data = '769154606465237510017690701743406842';
// 密钥
$appKey = '7691546064652375';
// 执行加密
$encData = encrypt($data, $appKey);
echo "Encrypted Data: " . $encData;
?>
<?php
// 密文(Base64 编码)
$encryptedData = "AAAAAAAAAAAAAAAAAAAAAHA0hhcB9SLW2WHCGSIrPqs1rgddCdhGkvFXaBeItLFVeVtpAC38G6zmnO05PuJrvkTYl0TAAxlWw0PSpEM53yE";
// 密钥(与加密时一致)
$key = "7691546064652375";
// 1. Base64 解码
$decoded = base64_decode($encryptedData);
if ($decoded === false) {
die("Base64 解码失败");
}
// 2. 分离 IV 和加密数据
$ivLength = openssl_cipher_iv_length('AES-128-CBC'); // 16 字节
$iv = substr($decoded, 0, $ivLength);
$encrypted = substr($decoded, $ivLength);
// 3. 解密
$decrypted = openssl_decrypt(
$encrypted,
'AES-128-CBC',
$key,
OPENSSL_RAW_DATA, // 标志位
$iv
);
if ($decrypted === false) {
die("解密失败");
}
// 4. 解析 JSON
$decodedObject = json_decode($decrypted, true);
echo "解密后的明文: " . PHP_EOL;
print_r($decodedObject);
?>