如何使用phpseclib3通过RSA算法利用指定公钥加密数据?
使用phpseclib3通过自定义公钥加密数据
要使用自己的公钥而非自动生成的密钥完成加密,只需通过RSA::loadPublicKey()方法加载你的公钥即可,具体实现如下:
代码示例
<?php require 'vendor/autoload.php'; use phpseclib3\Crypt\RSA; // 替换为你的公钥内容(支持PEM格式的PKCS#1或PKCS#8公钥) $customPublicKey = '-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxQ...(此处省略完整公钥内容) -----END PUBLIC KEY-----'; // 加载自定义公钥 $publicKey = RSA::loadPublicKey($customPublicKey); // 待加密的明文数据 $plaintext = '需要加密的部分数据'; // 执行加密,返回二进制密文 $ciphertext = $publicKey->encrypt($plaintext); // 可选:将二进制密文转为Base64编码,便于存储或传输 $encodedCiphertext = base64_encode($ciphertext); echo $encodedCiphertext; ?>
关键说明
- 公钥需为标准PEM格式,无论PKCS#1(
BEGIN RSA PUBLIC KEY)还是PKCS#8(BEGIN PUBLIC KEY)格式,phpseclib3都能自动识别加载 - 若公钥存储在文件中,可通过
file_get_contents('/path/to/your/public_key.pem')读取后加载 - 加密结果为二进制数据,直接输出可能出现乱码,建议转为Base64或十六进制格式处理
内容的提问来源于stack exchange,提问作者Mp. Dev
相关产品推荐
相关产品推荐

