使用 OpenSSL 扩展来实现公钥和私钥加密

首先,你需要生成一对公钥和私钥。可以使用 OpenSSL 工具来生成:

1、生成私钥

复制代码
openssl genpkey -algorithm RSA -out private_key.pem

2、从私钥生成公钥:

复制代码
openssl rsa -pubout -in private_key.pem -out public_key.pem

现在你有了一个私钥(private_key.pem)和一个对应的公钥(public_key.pem)。下面是如何在 PHP 中使用它们进行加密和解密:

复制代码
<?php
// 读取私钥和公钥
$privateKey = file_get_contents('private_key.pem');
$publicKey = file_get_contents('public_key.pem');

// 要加密的原始数据
$data = 'Hello, World!';

// 使用私钥进行加密
openssl_private_encrypt($data, $encrypted, $privateKey);

// 使用公钥进行解密
openssl_public_decrypt($encrypted, $decrypted, $publicKey);

// 输出解密后的数据
echo "原始数据: $data<br>";
echo "加密后: $encrypted<br>";
echo "解密后: $decrypted<br>";
?>

3、检测是否支付OPENSSL,或用phpinfo();

复制代码
openssl version

上述代码中,openssl_private_encrypt 用于使用私钥加密数据,openssl_public_decrypt 用于使用公钥解密数据。请确保你已经生成了正确的私钥和公钥文件,并将它们加载到 PHP 中,以便进行加密和解密操作。

需要注意的是,这只是一个简单的示例,实际应用中可能需要更多的安全性和错误处理。此外,OpenSSL 支持的加密算法不仅仅是 RSA,你可以根据需要选择不同的加密算法。安全性和密钥管理也是非常重要的,因此确保密钥的保护和管理是一个重要的安全实践。

相关推荐
济6173 分钟前
linux 系统移植(第十五期)---Linux 内核移植(4)-- 修改 EMMC 驱动--- Ubuntu20.04
linux·嵌入式硬件
henujolly4 分钟前
区块链p2p
服务器·区块链·p2p
礼拜天没时间.7 分钟前
《Docker实战入门与部署指南:从核心概念到网络与数据管理》:初识Docker——概念与优势
linux·运维·网络·docker·容器·centos
雅菲奥朗8 分钟前
工信部教考中心《系统可靠性工程师(高级)》开课通知
运维·sre
阿钱真强道8 分钟前
05 thingsboard-4.3-ubuntu20-rk3588-部署
linux·运维·服务器·鸿蒙
驱动探索者9 分钟前
Intel Xeon 服务器 CPU 学习
运维·服务器·学习·xeon
夜颂春秋11 分钟前
重温Linux命令
linux·运维·职场和发展·单元测试
weixin_4624462311 分钟前
Hive 4.0.1 自动安装脚本详解:一键部署 + 环境变量配置(适用于 Linux)
linux·hive·hadoop
Sheep Shaun11 分钟前
Linux 环境搭建终极指南(Ubuntu 版):2026 最新版,适配 Ubuntu 24.04 LTS
linux·运维·服务器·ubuntu
小李独爱秋14 分钟前
计算机网络经典问题透视:物联网和M2M通信的关系是怎样的?
运维·服务器·网络·物联网·计算机网络·m2m