ubuntu

Ubuntu PHP加密如何操作

小樊
39
2025-12-14 12:39:28
栏目: 编程语言

Ubuntu 下 PHP 加密操作指南

Ubuntu 环境中,PHP 加密通常分为两类:一是对业务数据进行加密(如字段、文件、通信),二是对PHP 源代码进行加密/混淆(保护源码)。下面分别给出可落地的操作步骤与示例。

一、数据加密与解密

<?php
function encryptData($data, $key, $method = 'AES-256-CBC') {
    $ivLen = openssl_cipher_iv_length($method);
    $iv    = openssl_random_pseudo_bytes($ivLen);
    $enc   = openssl_encrypt($data, $method, $key, OPENSSL_RAW_DATA, $iv);
    return base64_encode($iv . $enc);
}
function decryptData($data, $key, $method = 'AES-256-CBC') {
    $data  = base64_decode($data);
    $ivLen = openssl_cipher_iv_length($method);
    $iv    = substr($data, 0, $ivLen);
    $enc   = substr($data, $ivLen);
    return openssl_decrypt($enc, $method, $key, OPENSSL_RAW_DATA, $iv);
}

// 使用示例
$key  = '32-byte-secret-key-here-1234567890'; // 32 字节密钥(AES-256)
$msg  = 'Hello, 世界';
$enc  = encryptData($msg, $key);
$dec  = decryptData($enc, $key);
echo "Enc: $enc\nDec: $dec\n";

要点:

二、启用与验证 OpenSSL 扩展

# 安装系统 OpenSSL 库与 PHP OpenSSL 扩展
sudo apt-get update
sudo apt-get install -y openssl php-openssl

# 确认扩展已加载
php -m | grep -i openssl

# 如使用 FPM,重启服务
sudo systemctl restart php8.1-fpm    # 版本号按实际替换
# 如使用 Apache
sudo systemctl restart apache2
extension=openssl
<?php
var_dump(function_exists('openssl_encrypt'));

以上步骤适用于在 Ubuntu 上启用并使用 OpenSSL 扩展进行数据加解密。

三、PHP 源代码加密与混淆

# 示例:PHP 8.1,路径以实际为准
wget https://download.ioncube.com/loader_line/ioncube_loader_lin_8.1.so \
     -O /usr/lib/php/20210902/ioncube_loader_lin_8.1.so

# 启用扩展(Debian/Ubuntu 常用 phpenmod)
sudo phpenmod -v 8.1 ioncube_loader
# 或手动在 php.ini 添加:
# zend_extension=/usr/lib/php/20210902/ioncube_loader_lin_8.1.so
  1. 使用 ionCube Encoder 对 PHP 脚本进行加密,部署时确保目标服务器已安装对应版本的 Loader。
  2. 重启服务:
sudo systemctl restart apache2 || sudo systemctl restart php8.1-fpm

四、进阶场景

0
看了该问题的人还看了