当前位置:首页 > PHP

php rsa 实现

2026-02-13 16:28:57PHP

RSA 加密实现

在 PHP 中实现 RSA 加密需要使用 openssl 扩展。以下是一个完整的 RSA 加密和解密示例:

php rsa 实现

// 生成密钥对
$config = array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);

$res = openssl_pkey_new($config);
openssl_pkey_export($res, $privateKey);
$publicKey = openssl_pkey_get_details($res);
$publicKey = $publicKey["key"];

// 要加密的数据
$data = "Hello, RSA!";

// 使用公钥加密
openssl_public_encrypt($data, $encrypted, $publicKey);
$encrypted = base64_encode($encrypted);

// 使用私钥解密
openssl_private_decrypt(base64_decode($encrypted), $decrypted, $privateKey);

echo "Original: $data\n";
echo "Encrypted: $encrypted\n";
echo "Decrypted: $decrypted\n";

RSA 签名验证

RSA 也可用于数字签名:

php rsa 实现

// 创建签名
openssl_sign($data, $signature, $privateKey, OPENSSL_ALGO_SHA256);
$signature = base64_encode($signature);

// 验证签名
$valid = openssl_verify($data, base64_decode($signature), $publicKey, OPENSSL_ALGO_SHA256);

echo "Signature: $signature\n";
echo "Verification: " . ($valid ? "Valid" : "Invalid") . "\n";

密钥存储

生成的密钥可以保存到文件中:

// 保存公钥
file_put_contents('public.pem', $publicKey);

// 保存私钥
file_put_contents('private.pem', $privateKey);

// 从文件加载密钥
$publicKey = file_get_contents('public.pem');
$privateKey = file_get_contents('private.pem');

注意事项

  • 密钥长度至少应为 2048 位以确保安全性
  • 私钥必须严格保密
  • 加密数据长度不能超过密钥长度减去填充长度
  • 对于大数据,应使用对称加密,仅用 RSA 加密对称密钥

标签: phprsa
分享给朋友:

相关文章

php实现打印功能

php实现打印功能

PHP实现打印功能的方法 在PHP中实现打印功能可以通过多种方式完成,包括直接输出到浏览器、生成PDF文件、调用打印机接口等。以下是几种常见的方法: 直接输出HTML内容 PHP可以通过echo或p…

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n! =…

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…

php验证码的实现

php验证码的实现

PHP 验证码实现方法 使用 GD 库生成基础验证码 创建画布并生成随机字符串作为验证码内容: session_start(); $width = 120; $height = 40; $image…

php实现推送消息推送消息

php实现推送消息推送消息

PHP 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebSo…

php 伪静态实现

php 伪静态实现

PHP 伪静态实现方法 伪静态(URL Rewrite)是一种通过服务器配置将动态URL转换为静态URL的技术,提升URL的可读性和SEO效果。以下是几种常见的实现方式: 使用Apache的mod_…