美文网首页
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非对称加密算法

    RSA算法,经典非对称加密算法,通过生成公钥 私钥 进行加密解密 公钥加密 私钥解密 反之 私钥加密 公钥...

  • iOS 常规加密算法

    非对称加密: RSA:https、苹果的p12证书等 认证都是通过RSA--公钥加密,私钥解秘--私钥加密,公钥解...

  • iOS之密码学

    一、非对称加密 - RSA : +公钥加密,私钥解密; + 私钥加密,公钥解密; + 只能通过因式分解来破解 二、...

  • iOS密码学-对称加密

      之前我们已经研究过RSA,并且RSA是非对称加密,非对称加密有一对公钥和私钥。我们可以对数据用私钥加密用公钥解...

  • RSA加密算法

    RSA加解密、签名验签過程 RSA加密是一种非对称加密,通常使用公钥加密,私钥解密,私钥签名,公钥验签。私钥是個人...

  • iOS RSA加签和验签(SHA1WithRSA)

    RSA 简介 RSA是一种非对称加密算法,使用公钥加密就可以使用私钥解密,使用私钥加密就可以使用公钥解密。RSA公...

  • HTTPS中的数字证书认证过程解析

    RSA非对称加密的2个用途:加密和签名 加密(防窃听) RSA非对称加密会用到一对密钥,分别称为公钥和私钥,公钥加...

  • iOS RSA加签和验签

    RSA是一种非对称加密算法,使用公钥加密就可以使用私钥解密,使用私钥加密就可以使用公钥解密。RSA公钥对外公开,私...

  • python的加密方式: rsa加密和解密

    RSA加密是一种非对称加密,通常使用公钥加密,私钥解密。 公钥、私钥的生成 生成文件如下图: 可以将生成的公钥、私...

  • Linux配置免密登录

    1、公钥-私钥对: 称为非对称加密方式 2、生成公钥-私钥对命令: 参数:-t:加密算法 rsa:不对称加密算法...

网友评论

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

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