当前位置:首页 > PHP

rsa php实现

2026-02-14 06:29:36PHP

RSA 加密算法在 PHP 中的实现

RSA 是一种非对称加密算法,广泛应用于数据加密和数字签名。以下是 PHP 中实现 RSA 加密和解密的方法。

生成 RSA 密钥对

使用 openssl_pkey_new 函数生成 RSA 密钥对:

$config = array(
    "digest_alg" => "sha512",
    "private_key_bits" => 4096,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);

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

private_key_bits 指定密钥长度,通常为 2048 或 4096 位。

加密数据

使用公钥加密数据:

rsa php实现

$data = "Sensitive data to encrypt";
openssl_public_encrypt($data, $encrypted, $publicKey);
$encryptedBase64 = base64_encode($encrypted);

加密后的数据是二进制格式,通常需要 Base64 编码以便传输。

解密数据

使用私钥解密数据:

rsa php实现

$encrypted = base64_decode($encryptedBase64);
openssl_private_decrypt($encrypted, $decrypted, $privateKey);

签名和验证

RSA 也可用于数字签名:

openssl_sign($data, $signature, $privateKey, OPENSSL_ALGO_SHA256);
$signatureBase64 = base64_encode($signature);

$verified = openssl_verify($data, base64_decode($signatureBase64), $publicKey, OPENSSL_ALGO_SHA256);

密钥存储

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

file_put_contents('private.pem', $privateKey);
file_put_contents('public.pem', $publicKey);

使用时从文件读取:

$privateKey = file_get_contents('private.pem');
$publicKey = file_get_contents('public.pem');

注意事项

密钥长度至少应为 2048 位以保证安全性。 加密的数据长度不能超过密钥长度减去填充长度(例如 2048 位密钥最多加密 245 字节)。 敏感数据应使用 HTTPS 等安全通道传输。 私钥必须严格保密,公钥可以自由分发。

标签: rsaphp
分享给朋友:

相关文章

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE o…

php实现接口

php实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不实现具体功能。类可以实现一个或多个接口,并必须实现接口中定义的所有方法。 定义接口 接口使用 inter…

php 实现秒杀

php 实现秒杀

PHP 实现秒杀的关键技术 秒杀系统需要解决高并发、超卖、性能瓶颈等问题。以下是实现秒杀的核心方案: 使用 Redis 预减库存 将商品库存提前加载到 Redis 中,通过原子操作保证库存准确性:…

php 实现排序

php 实现排序

PHP 实现数组排序的方法 PHP 提供了多种内置函数和方法来实现数组排序,适用于不同的排序需求。以下是一些常见的排序实现方式: 使用 sort() 函数对数组进行升序排序 sort() 函数对数…

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost…

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query =…