美文网首页
rsa类 php 非对称加密 公钥私钥

rsa类 php 非对称加密 公钥私钥

作者: 爱学习的小仙女呀 | 来源:发表于2018-07-31 18:57 被阅读0次

    <?php
    namespace App\Modules\SingleTenantAuth\Util;
    use Illuminate\Support\Facades\DB;
    use Exception;
    /**

    • Created by PhpStorm.
    • User: h1646
    • Date: 2018/7/31
    • Time: 11:01
      */
      class Rsa
      {

    /**
    * 生成密钥对
    * @author dzh
    */
    function createKey() {
    res = openssl_pkey_new(); if(res == false) return false;
    openssl_pkey_export(res,private_key);
    public_key = openssl_pkey_get_details(res);
    return array('pub_key'=>public_key["key"],'prv_key'=>private_key);
    }

    /**
     * RSA私钥加密
     * @param string $private_key 私钥
     * @param string $data 要加密的字符串
     * @return string $encrypted 返回加密后的字符串
     * @author dzh
     */
    function privateEncrypt($private_key,$data){
        $pi_key =  openssl_pkey_get_private($private_key);//这个函数可用来判断私钥是否是可用的,可用返回资源id Resource id
        $output = '';
        openssl_private_encrypt($data,$output,$pi_key);
        return base64_encode($output);
    }
    
    /**
     * RSA公钥解密(私钥加密的内容通过公钥可以解密出来)
     * @param string $public_key 公钥
     * @param string $data 私钥加密后的字符串
     * @return string $output 返回解密后的字符串
     * @author dzh
     */
    function publicDecrypt($public_key,$data){
    
        $pu_key = openssl_pkey_get_public($public_key);//这个函数可用来判断公钥是否是可用的
        openssl_public_decrypt(base64_decode($data),$output,$pu_key);
        return $output;
    }
    

    /**
    * 用公密钥加密
    */
    public function public_encrypt(input,public_key) {
    pu_key = openssl_pkey_get_public(public_key);//这个函数可用来判断公钥是否是可用的
    outpub = ''; openssl_public_encrypt(input,output,pu_key);
    return base64_encode(output); } /** * 解密 公密钥加密后的密文 */ public function private_decrypt(input) {
    pi_key = openssl_pkey_get_private(private_key);//这个函数可用来判断私钥是否是可用的,可用返回资源id Resource id
    output = ''; openssl_private_decrypt(base64_decode(input),output,pi_key);
    return $output;
    }

    }

    相关文章

      网友评论

          本文标题:rsa类 php 非对称加密 公钥私钥

          本文链接:https://www.haomeiwen.com/subject/kgzhvftx.html