rsa加解密

/**
 * rsa_encode  rsa_decode post请求
 * @param 请求参数
 */

用此方法必须开启 php 扩展 

公钥 私钥  必须是2048位  私钥加密  公钥解密

公钥 私钥  写在配置文件中 或读取文件  

备注 :此循环加密是参数过长 

function rsa_encode($data) {

    //openssl_pkey_get_private 此方法测试私钥是否可用
    $pi_key =  openssl_pkey_get_private(Config::get('pri_key'));

    //分割加密
    $crypto = '';
    $encryptData="";
    foreach (str_split($data, 245) as $chunk) {

        openssl_private_encrypt($chunk, $encryptData,$pi_key);

        $crypto .= $encryptData;
    }

    return base64_encode($crypto);


    // //加密之后存入的变量
    // $encrypted = "";
    // //私钥加密 参数1:是需要传递的参数json 参数2:用于接收加密后存入的变量,参数3:公钥或者私钥
    // openssl_private_encrypt($data,$encrypted,$pi_key);
    // //加密后的内容通常含有特殊字符,需要编码转换下,在网络间通过url传输时要注意base64编码是否是url安全的
    // $encrypted = base64_encode($encrypted);
    // return $encrypted;
}

//解密
function rsa_decode($data) {

     //openssl_pkey_get_public 此方法测试公钥是否可用
     $pu_key = openssl_pkey_get_public(Config::get('pub_key'));
     //分割解密
    $crypto = '';
    $decryptData="";
    foreach (str_split(base64_decode($data), 256) as $chunk) {

        openssl_public_decrypt($chunk, $decryptData, $pu_key);

        $crypto .= $decryptData;
    }

    return $crypto;


    // //解密之后存入的变量
    // $decrypted = "";
    // //解密
    // openssl_public_decrypt(base64_decode($data),$decrypted,$pu_key);

    // return $decrypted;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值