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

相关推荐
是jin奥4 分钟前
Ubuntu 访问 Windows 共享目录
linux·运维·ubuntu
Gauss松鼠会4 分钟前
【GaussDB】破除gaussdb ugin索引支持中文模糊查询的迷思-字符序
java·运维·服务器·网络·数据库·gaussdb·经验总结
科技象限7 分钟前
数据防泄密系统怎么选?看它怎么把几道防线叠成网
运维·安全·网络安全·安企神
Mr_韩22 分钟前
子网路由实战:无需公网 IP,异地直接访问家庭内网全部设备
运维·网络·物联网·nas
Bruce_Liuxiaowei22 分钟前
内网“影子资产“:串口服务器安全盲区剖析
服务器·网络·安全·iot
星恒随风26 分钟前
Linux基础IO万字详解:从文件描述符fd到重定向、FILE缓冲机制及MiniShell升级
linux·运维·笔记·学习·状态模式
yunwei3741 分钟前
eBPF 入门开发实践教程一:Hello World,基本框架和开发流程
linux·后端·性能优化
小雪崩43 分钟前
嵌入式学习 day65:Linux驱动进阶——pinctrl 子系统和 platform 驱动框架
linux·学习·驱动
亚川楼宇自控系统数据中心厂家1 小时前
隧道智能照明:如何实现按需调光、节能又安全
运维
yichengerp1 小时前
国内中小电子工厂用哪个erp系统好?
大数据·运维·人工智能·云计算·制造