首页 > 编程语言 >php rsa长文加密解密

php rsa长文加密解密

时间:2024-04-12 20:44:05浏览次数:22  
标签:resource res rsa private key maxLength 长文 php public

密钥类型:

1024bit:分段加密字节数为117,分段解密字节数为128。
2048bit:分段加密字节数为245,分段解密字节数为256。

 

class RsaBill
{

    private $public_key_resource;
    private $private_key_resource;

    public function __construct()
    {
        $this->public_key_resource = openssl_pkey_get_public(config('app.public_key'));
        $this->private_key_resource = openssl_pkey_get_private(config('app.private_key'));
    }

    //公钥加密
    public function public_encrypt(string $source)
    {
        $maxLength = 245;
        $output = '';
        while ($source) {
            $input = substr($source, 0, $maxLength);
            $source = substr($source, $maxLength);
            $res = '';
            openssl_public_encrypt($input, $res, $this->public_key_resource, OPENSSL_PKCS1_PADDING);
            $output .= $res;
        }

        return base64_encode($output);
    }

    /**
     * 私钥解密
     */
    public function private_decrypt(string $input)
    {
        $maxLength = 256;
        $content = base64_decode($input);
        $output = '';
        while ($content) {
            $str = substr($content, 0, $maxLength);
            $content = substr($content, $maxLength);
            $res = '';
            openssl_private_decrypt($str, $res, $this->private_key_resource, OPENSSL_PKCS1_PADDING);
            $output .= $res;
        }
        return $output;
    }
}

 

标签:resource,res,rsa,private,key,maxLength,长文,php,public
From: https://www.cnblogs.com/tros/p/18132057

相关文章

  • php heredoc 与 nowdoc
    在php开发中我们会很经常的使用到html,有时候是很大一段html,直接在php中去编写html很是不方便,相信很多同学都遇到过,不用担心php中的定界符heredoc和nowdoc会帮助我们的,那就让我们一起来看看吧!phpheredoc与nowdocheredoc结构heredoc句法结构:运算符之后要提供一个标识符,然后......
  • JS逆向中特殊RSA加密密钥
    在对某个网站的接口进行逆向的时候发现其使用了RSA加密,但是其中的密钥生成方式比较特殊。JS部分代码如下所示:varf=newn.jsbn.BigInteger("9E08DA9CB4357388754D6AFF8ED0E1A9C46CD927291ACBC26C08E97E80BC8FFA1F9ABD31CDE9587785183A51************************************......
  • php的addslashes()函数
    PHPaddslashes()函数addslashes()函数是PHP的一个内置函数,它返回一个在预定义的字符前会添加反斜杠的转义字符串。可以注:它不会在参数中使用任何指定的字符。预定义的字符是:●单引号(')●双引号(")●反斜杠(\)●空(null)值基本语法:addslashes($string)参数: ......
  • php的isset、empty、is_null的区别
    isset判断变量是否定义或者是否为空变量存在返回ture,否则返回false变量定义不赋值返回falseunset一个变量,返回false变量赋值为null,返回falseempty:判断变量的值是否为空,能转换为false的都是空,为空返回true,反之返回false。"",0,"0",NULL,FALSE都认为为空,返回true没有任何......
  • PHP中双引号和单引号的区别
    双引号解释变量,单引号不解释变量双引号里插入单引号,其中单引号里如果有变量的话,变量解释双引号的变量名后面必须要有一个非数字、字母、下划线的特殊字符,或者用{}讲变量括起来,否则会将变量名后面的部分当做一个整体,引起语法错误双引号解释转义字符,单引号不解释转义字符......
  • 52 Things: Number 21: How does the CRT method improve performance of RSA?
    52Things:Number21:HowdoestheCRTmethodimproveperformanceofRSA?52件事:第21件:CRT方法如何提高RSA的性能? Thisisthelatestinaseriesofblogpoststoaddressthelistof '52ThingsEveryPhDStudentShouldKnow' todoCryptography:asetofqu......
  • 52 Things: Number 15: Key generation, encryption and decryption algorithms for R
    52Things:Number15:Keygeneration,encryptionanddecryptionalgorithmsforRSA-OAEPandECIES.52件事:第15件:RSA-OAEP和ECIES的密钥生成、加密和解密算法。 Thisisthelatestinaseriesofblogpoststoaddressthelistof  '52ThingsEveryPhDStuden......
  • 1st Universal Cup 做题笔记
    Stage1:Shenyanghttps://qoj.ac/contest/1096A只需要考虑每个pair的贡献即可,而相交的pair数量是线性的,因此可以暴力搞,剩下的不相交的pair拿前缀和做就行了,复杂度\(\mathcalO(n\logn)\)。cornercase是当一方的区间全部退化的时候,需要重新计算一下出现的概率。BC......
  • 【论文随笔】会话推荐系统综述(A Survey on Conversational Recommender Systems)
    前言今天读的论文为一篇于2021年5月发表在《ACM计算机调查》(ACMComputingSurveys)的论文,文章提供了对话式推荐系统(CRS)的全面综述,探讨了CRS的定义、概念架构、交互方式、知识元素、计算任务以及评估方法。文章还讨论了CRS在不同应用环境中的实现,如智能家居助手和聊天机器人,并指......
  • Linux系统中如何部署php
    1.在线安装Apache服务器ubuntu可通过“apt”等命令在线安装,centos用yum。#ubuntusudoapt-getinstallapache2#centosyum-yinstallhttpd安装完成后需要手动启动apache服务.#ubuntusudo/etc/init.d/apache2start#centossystemctlrestarthttpd测试A......