PHP RSA加解密工具,超长加密问题处理(二)

本文详细介绍了如何使用PHP进行RSA加解密,特别是针对超长数据的处理,提供了一种有效的解决方案。作者乐杨俊分享了其在处理过程中遇到的问题及解决方法,链接指向了优快云上的详细文章。
解决超长加密问题思路:分割分段加密
<?php
/**
 * RSA加解密超长处理
 */
namespace leyangjun\Lib;
class CryptRsa
{
    use InstanceTrait;

    const  RSA_ENCRYPT_BLOCK_SIZE = 117;
    const  RSA_DECRYPT_BLOCK_SIZE = 128;

    /**
     * 转成标格式(有时你会发现别人给你的秘钥不是标准格式,可以用此方法将其转成标注格式)
     * @Add 乐杨俊 leyangjun
     * @param $key
     * @return string
     */
    public function setSPhptandardFormat($key)
    {
        $pem = chunk_split($key, 64, "\n");
        $pem = "-----BEGIN PUBLIC KEY-----\n" . $pem . "-----END PUBLIC KEY-----\n";
        //$publicKey = openssl_pkey_get_public($pem);

        return $pem;
    }


    /**
     * 超长加密(由于秘钥有长度限制比如1024,2048约长表示接受的加密数据越多,否则会有超长加密不成功的问题)
     * 117表示长度,加密的时候可以从这开始分割加密(解密的时候从128开始解密即可)
     * @Add 乐杨俊 leyangjun
     * @param String $content 待加密内容
     * @param String $path_rsa_public_key RSA公钥路径(绝对)
     */
    public function superLongPublicKeyEncrypt($content, $rsaPublicKey, $choicePath = true, $withBase64 = false)
    {
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值