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

相关推荐
新兴AI民工5 分钟前
# 【Linux内核三十六】进程管理模块:CFS负载均衡(一):sched_domain与sched_group层级构建
linux·运维·负载均衡
pride.li9 分钟前
WSL教程-WSL安装与配置Ubuntu
linux
luj_176810 分钟前
毒素驱动的生物自毁机制探析
服务器·c语言·开发语言·经验分享·算法
weixin_3077791312 分钟前
Databricks里用PySpark统计指定表和字段中各字段的空值、空字符串或零值比例
运维·数据仓库·python·spark·云计算
躺不平的理查德17 分钟前
Nginx与Ajax 备忘录
linux·运维·服务器
多多鼠19 分钟前
Tool Calling的信任边界:从协议校验到执行沙箱的完整链路设计
运维·开发语言·网络·人工智能·python·langchain
谢亮_vipxieliang23 分钟前
ValidX vs Apache Commons Validator:功能与性能对比
java·服务器·spring boot·后端·spring cloud·apache·hibernate
惜离殇25 分钟前
从零开始的敲代码生活--Linux应用软件(文件操作基础2)
linux·文件io·目录io
Neighbor_OldY32 分钟前
【实战复盘】RDP暴力破解与内网横向移动溯源:Windows全套排查命令与事件ID硬核解析
运维·windows·web安全
项目管理实用笔记33 分钟前
CI/CD是什么?持续集成持续交付入门
运维·ci/cd·研发效能·项目管理·团队开发