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
// 要加密的数据
$data = [
'aesLoginTime' => 1743409991301,
'uid' => 1001769070
];
// 将数组转换为 JSON 字符串
$jsonData = json_encode($data);
// 密钥
$key = "7691546064652375";
// 生成初始化向量 (IV)
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-128-CBC'));
// 加密操作
$encrypted = openssl_encrypt($jsonData, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
// 合并 IV 和加密数据
$combined = $iv . $encrypted;
// 进行 Base64 编码
$base64Encoded = base64_encode($combined);
// 输出加密后的 Base64 编码数据
echo "加密后的 Base64 编码数据: ". $base64Encoded. PHP_EOL;
// 为了演示解密,假设密钥和 IV 已知
// 解码 Base64 数据
$decoded = base64_decode($base64Encoded);
// 分离 IV 和加密数据
$decodedIV = substr($decoded, 0, openssl_cipher_iv_length('AES-128-CBC'));
$decodedEncrypted = substr($decoded, openssl_cipher_iv_length('AES-128-CBC'));
// 解密数据
$decrypted = openssl_decrypt($decodedEncrypted, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $decodedIV);
// 将解密后的 JSON 字符串转换回对象
$decodedObject = json_decode($decrypted, true);
// 输出解密后的对象
echo "解密后的对象: ". PHP_EOL;
print_r($decodedObject);
?>