PHP 实现 SHA256withRSA 签名及验证:从密钥生成到示例演示
要使用PHP进行SHA256withRSA签名,你需要遵循以下步骤: 1. 生成RSA密钥对(公钥和私钥)。 2. 使用公钥对数据进行SHA256withRSA签名。 3. 使用私钥验证签名。 以下是一个简单的示例: ```php <?php // 生成RSA密钥对 function generate_rsa_keypair($bits = 2048) { $private_key = openssl_pkey_new(array('private_key_bits' => $bits)); $public_key = openssl_pkey_get_details($private_key); return array('private_key' => $private_key, 'public_key' => $public_key); } // 使用公钥对数据进行SHA256withRSA签名 function sign_data($data, $private_key) { $signature = null; openssl_sign($data, $signature, $private_key, 'sha256'); return base64_encode($signature); } // 使用私钥验证签名 function verify_signature($data, $signature, $public_key) { $result = false; openssl_verify($data, base64_decode($signature), $public_key, 'sha256', $result); return $result; } // 示例 $keypair = generate_rsa_keypair(); $data = "需要签名的数据"; $signature = sign_data($data, $keypair['private_key']); $is_valid = verify_signature($data, $signature, $keypair['public_key']); echo "签名: " . $signature . PHP_EOL; echo "验证结果: " . ($is_valid ? "有效" : "无效") . PHP_EOL; ?> ``` 这个示例首先生成一个RSA密钥对,然后使用私钥对数据进行SHA256withRSA签名,最后使用公钥验证签名。 ######[AI写代码神器 | 485点数解答 | 2023-12-12 09:49:26]
- 代码填空挑战:完成正态分布、随机数生成及数据处理代码(阿里通义 | 506点数解答 | 2025-03-23 14:32:14)330
- 挑战!完成代码填空解锁数据处理奥秘(字节豆包 | 116点数解答 | 2025-03-26 22:22:15)350
- 挑战填空!完成这段 NumPy 代码实现数据生成与保存(DeepSeek | 178点数解答 | 2025-03-26 22:26:30)410
- Python实现AES加密解密:含代码示例与关键注意点(字节豆包 | 836点数解答 | 2025-10-14 16:35:32)76
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)46
- .htaccess 配置:文件访问限制、重写规则大揭秘(GPT | 165点数解答 | 2024-09-12 17:05:58)266
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)362
- Typecho 博客评论模板深度剖析:功能、问题与改进建议(阿里通义 | 718点数解答 | 2025-08-08 13:24:09)182
- PHP 代码问题深度剖析:安全、可读、性能与兼容改进方案(字节豆包 | 2007点数解答 | 2025-08-08 13:25:08)263
- 探索连续小波变换(CWT):剖析信号局部时频特性的数学利器! (DeepSeek | 59点数解答 | 2025-05-10 01:44:29)205
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)282
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)278