【无标题】

 创建一个PHP脚本,负责接收、加密和解密数据。

<?php
// 加载CryptoJS和OpenSSL库
function decrypt($data, $key) {
    // 解密数据
    $iv_length = openssl_cipher_iv_length('aes-256-cbc');
    $data = json_decode($data, true);
    $iv = base64_decode($data['iv']);
    $encryptedData = base64_decode($data['value']);
    
    return openssl_decrypt($encryptedData, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
}

function encrypt($data, $key) {
    // 加密数据
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
    
    return json_encode(['iv' => base64_encode($iv), 'value' => base64_encode($encrypted)]);
}

$key = 'your-encryption-key'; // 使用安全的密钥

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $json = file_get_contents('php://input');
    $request = json_decode($json, true);
    
    // 解密请求数据
    $decryptedData = decrypt($request['data'], $key);
    
    // 处理解密后的数据
    echo json_encode(['decrypted' => $decryptedData]);
} else {
    // 示例:加密并返回初始数据
    $initialData = "Sensitive Data";
    $encryptedData = encrypt($initialData, $key);
    
    echo json_encode(['encrypted' => $encryptedData]);
}
?>

使用JavaScript(比如通过AJAX)发送加密后的数据给PHP脚本: 

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
<script>
    function sendData() {
        const key = 'your-encryption-key'; // 使用安全的密钥
        const data = { sensitiveData: "Hello, World!" };
        
        const iv = CryptoJS.lib.WordArray.random(16);
        const encrypted = CryptoJS.AES.encrypt(JSON.stringify(data), key, {
            iv: iv
        });
        
        const payload = {
            iv: iv.toString(CryptoJS.enc.Base64),
            value: encrypted.toString()
        };

        fetch('your_script.php', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ data: payload })
        })
        .then(response => response.json())
        .then(result => console.log(result));
    }
    
    // 调用函数发送数据
    sendData();
</script>

访问和测试

  1. 访问你的PHP脚本(例如 your_script.php),初始加载时将返回加密的数据。
  2. 使用JavaScript的 sendData() 函数发送加密的数据到PHP脚本。
  3. 在浏览器的开发者工具中查看网络请求,确保发送的请求体是加密后的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值