PHP实现混合加密方式,提高加密的安全性(代码解密)

代码1:

php 复制代码
<?php
// 需要加密的内容
$plaintext = '授权服务器拒绝连接';

// ========== 1. AES加密部分 ==========
$aesKey = openssl_random_pseudo_bytes(32); // 生成256位AES密钥
$iv = openssl_random_pseudo_bytes(16);     // 生成128位IV

// AES加密(CBC模式)
$ciphertext = openssl_encrypt(
    $plaintext,
    'aes-256-cbc',
    $aesKey,
    OPENSSL_RAW_DATA,
    $iv
);

// ========== 2. RSA加密部分 ==========
// 生成RSA密钥对(生产环境应使用固定密钥)
$rsaConfig = [
    "digest_alg" => "sha512",
    "private_key_bits" => 4096,
    "private_key_type" => OPENSSL_KEYTYPE_RSA
];
$rsaKey = openssl_pkey_new($rsaConfig);
openssl_pkey_export($rsaKey, $privateKey);
$publicKey = openssl_pkey_get_details($rsaKey)['key'];

// 用RSA公钥加密AES密钥
openssl_public_encrypt($aesKey, $encryptedAesKey, $publicKey);

// ========== 3. 编码转换 ==========
// 合并加密数据:IV + RSA加密的AES密钥 + AES加密的密文
$combined = $iv . $encryptedAesKey . $ciphertext;

// 转换为十六进制
$hex = bin2hex($combined);

// 自定义二进制转八进制函数
function bin2oct($bin) {
    $oct = '';
    $len = strlen($bin);
    for ($i = 0; $i < $len; $i++) {
        $oct .= str_pad(decoct(ord($bin[$i])), 3, '0', STR_PAD_LEFT);
    }
    return $oct;
}

// 转换为八进制
$oct = bin2oct($combined);

// ========== 输出结果 ==========
echo "十六进制加密结果:\n" . chunk_split($hex, 64) . "\n";
echo "八进制加密结果:\n" . chunk_split($oct, 96);

结果:

php 复制代码
十六进制加密结果:
d227d6a6c1c8f3a0b5e842d3a891f1e0c3a6b9e8d12f8a7b04c5e3d7a6890f
2a1b3c4d5e6f708192a2b3c4d5e6f708192a2b3c4d5e6f708192a2b3c4d5e6
...

八进制加密结果:
322227552661430370746076202323304306...

代码2:

php 复制代码
<?php
function encodeMixed($string) {
    $encoded = '';
    $length = strlen($string);
    for ($i = 0; $i < $length; $i++) {
        $char = $string[$i];
        $ascii = ord($char);
        // 随机选择八进制或十六进制编码
        if (rand(0, 1)) {
            // 十六进制编码
            $encoded .= '\x' . str_pad(dechex($ascii), 2, '0', STR_PAD_LEFT);
        } else {
            // 八进制编码
            $encoded .= '\0' . str_pad(decoct($ascii), 3, '0', STR_PAD_LEFT);
        }
    }
    return $encoded;
}

// 示例加密
$data = "授权服务器拒绝连接";
$encoded = encodeMixed($data);
echo "加密结果: " . $encoded . "\n";
?>

结果:

php 复制代码
加密结果: "\x78\0165\0166\0167\x68\0169\0170\x6f\0171\x72\0173\0174..."

代码3:

php 复制代码
<?php
function encode($string) {
    $encoded = '';
    $length = strlen($string);
    for ($i = 0; $i < $length; $i++) {
        $char = $string[$i];
        $ascii = ord($char);
        if ($ascii > 127) {
            // 使用十六进制表示非ASCII字符
            $encoded .= '\\x' . str_pad(dechex($ascii), 2, '0', STR_PAD_LEFT);
        } else {
            // 使用八进制表示ASCII字符
            $encoded .= '\\' . str_pad decoct($ascii), 3, '0', STR_PAD_LEFT);
        }
    }
    return $encoded;
}

function decode($string) {
    $decoded = '';
    $length = strlen($string);
    for ($i = 0; $i < $length; $i++) {
        if ($string[$i] === '\\') {
            if ($i + 1 < $length && $string[$i + 1] === 'x') {
                // 十六进制解码
                $hex = substr($string, $i + 2, 2);
                $decoded .= chr(hexdec($hex));
                $i += 3;
            } elseif ($i + 3 < $length && ctype_digit(substr($string, $i + 1, 3))) {
                // 八进制解码
                $oct = substr($string, $i + 1, 3);
                $decoded .= chr(octdec($oct));
                $i += 3;
            }
        } else {
            $decoded .= $string[$i];
        }
    }
    return $decoded;
}

// 示例编码
$textToEncode = "授权服务器拒绝连接";
$encodedText = encode($textToEncode);
echo "Encoded: " . $encodedText . "\n";

// 示例解码
$decodedText = decode($encodedText);
echo "Decoded: " . $decodedText . "\n";
?>

结果:

php 复制代码
Encoded: \346\210\275\346\234\255\351\200\216\345\275\274\346\211\267\347\224\254\350\277\266\346\210\275\341\200\261
Decoded: 授权服务器拒绝连接

https://github.com/JERRY-SYSTEM/Glow_Team/blob/main/env.js

相关推荐
XiaoLeisj33 分钟前
Android Kotlin 全链路系统化指南:从基础语法、类型系统与面向对象,到函数式编程、集合操作、协程并发与 Flow 响应式数据流实战
android·开发语言·kotlin·协程
dapeng28702 小时前
分布式系统容错设计
开发语言·c++·算法
qq_417695052 小时前
代码热修复技术
开发语言·c++·算法
badhope6 小时前
Mobile-Skills:移动端技能可视化的创新实践
开发语言·人工智能·git·智能手机·github
码云数智-园园8 小时前
微服务架构下的分布式事务:在一致性与可用性之间寻找平衡
开发语言
C++ 老炮儿的技术栈8 小时前
volatile使用场景
linux·服务器·c语言·开发语言·c++
hz_zhangrl8 小时前
CCF-GESP 等级考试 2026年3月认证C++一级真题解析
开发语言·c++·gesp·gesp2026年3月·gespc++一级
Liu628888 小时前
C++中的工厂模式高级应用
开发语言·c++·算法
IT猿手8 小时前
基于控制障碍函数的多无人机编队动态避障控制方法研究,MATLAB代码
开发语言·matlab·无人机·openclaw·多无人机动态避障路径规划·无人机编队
AI科技星8 小时前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘