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

<?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;
}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,312评论 19 139
  • 在接触thinkphp5之后,知道thinkphp5作为API接口性能更加的友好,那么我们在为别人提供接口的时候需...
    上善丨若水阅读 9,120评论 0 4
  • 对称加密就是用同样的加密手段去解密.PHP中加密使用到了opensll系列函数,需要开启openssl扩展. 加密...
    鱼落于天阅读 5,415评论 0 0
  • 从我喜欢你 纠结多于欢喜 斩不断的情意 挣扎的远离 从来以失败告终 每一次的交集 都是一场理智与情感的战争 也会疲...
    沈安乐阅读 981评论 0 0
  • 1、我们大多数的人使用的语言倾向于评判、比较、命令和指责,而不是鼓励我们倾听彼此的感受和需要 2、我们对别人的要求...
    亦亦大阅读 2,833评论 0 1