使用 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,你可以根据需要选择不同的加密算法。安全性和密钥管理也是非常重要的,因此确保密钥的保护和管理是一个重要的安全实践。

相关推荐
wuminyu6 小时前
专家视角看Java多态性的底层基石vtable(虚函数表)构建过程解析
java·linux·c语言·jvm·c++
叶总没有会6 小时前
Docker入门
运维·docker·容器
KKKlucifer6 小时前
纵深防御视角下安全运维服务体系构建思路
运维·网络·安全
lbb 小魔仙6 小时前
2026远程办公软件夏季深度横测:ToDesk、向日葵、网易UU远程全面对比,远控白皮书
android·服务器·网络协议·tcp/ip·postgresql
嵌入式×边缘AI:打怪升级日志6 小时前
全志T113 Tina-Linux开发环境搭建:从安装依赖到打包烧录完整教程
linux·运维·服务器
yugi9878386 小时前
Linux下58mm热敏打印机驱动安装与配置指南
linux·运维·服务器
运维老郭6 小时前
K8s故障排查:一条分层排查路径解决99%线上问题
运维·云原生·kubernetes
AC赳赳老秦6 小时前
项目闭环管理:用 OpenClaw 对接 Jira / 禅道,实现需求 - 任务 - 进度 - 验收全流程自动化
运维·人工智能·python·自动化·devops·jira·openclaw
遇见火星6 小时前
centos7和centos8设置本地镜像为yum安装源的方法
linux·运维·服务器
piaopiaolanghua6 小时前
[Ai问答] Docker是否支持跨架构镜像,譬如ARM/X86
linux·运维·服务器