老张博客

php RSA加密解密使用的方法

发布时间:2个月前热度: 26 ℃

RSA 数据加密解密一般用于数据接口之间交互使用,我使用经验一般是在对 银行支付,

信息获取,话费充值等接口上使用的,初次使用这种加密方式 完全不理解 公钥,

私钥等是做什么的,通过不断的百度,测试了解了这种加密方法的使用规则。

一条数据提交到银行接口时候,需要将数据加密传输,这个时候就需要 使用私钥进行加密,

同时需要将你的公钥信息给到银行端,用于解密你的加密信息(公钥和私钥是一对的,

可以使用工具生成,在线也能搜索到在线生成的)看代码:


        $privateKeyFilePath = ROOT_PATH.'/public/rsa/'.'pri.pem';  //私钥地址
        $key_text = file_exists($privateKeyFilePath);
        if(!$key_text){
            die("私钥不存在");
        }
        $privateKey = file_get_contents($privateKeyFilePath);
        $privateKey1 = openssl_pkey_get_private($privateKey); //获取私钥的keyid

        $str = "姓名:小明,年龄:18";
        $encryptData = ""; //加密后的字符串
        $res = openssl_private_encrypt($str, $encryptData, $privateKey1); //进行加密
        $base_str = base64_encode($encryptData); //使用base64 进行数据传输

上面的是加密方式。

下面是解密方式:


 $publicKeyFilePath = ROOT_PATH.'/public/rsa/'.'pub.pem'; //公钥地址
        $publicKey1 = openssl_pkey_get_public(file_get_contents($publicKeyFilePath));

        $decryptData ='';
        //下面是需要解密的字符串
        $encryptData = "maNQ7k+kWVrXPH1o+smVjo2bwkPPyn8x4qR4l4hvNAeC9wyngY+RhmKquqF0kIXYMvPcCwCGrS52qqJJK3JHI9VBODuhZgESBMR6R842UiP1WrBsrIy2fqDJFEY8MU88yf1kJbPnyFTOAYozpdsvLEDVMC0mcGURhS3Y0Q1RPFrsaFjmg0R3l2RnHvy29GsqzvfsUxYWP+SuOz2WTlzRclGZickuz7w0tpGPf2YYpjCu8JVfZF1Bf5Pn6jmWLGUgpjt1rmendZDxqbRmBsEpewPr/uMlqpjKnLZqFKyWRGbST3mnpJJIxnZFtRmKjFYeAMZhn483aU0HCgpO1UJHFg==";
        openssl_public_decrypt(base64_decode($encryptData), $decryptData, $publicKey1);
        var_dump($decryptData); //解密后得到的数据信息


还有处理公钥私钥文件的程序


$priFilePath = ROOT_PATH.'/public/rsa/'.'gongyao.pub';  
        $pri_content = file_get_contents($priFilePath);
        
        $str="-----BEGIN PUBLIC KEY-----\n";
for($i=0;$i<100;$i++){
$ss=substr("$pri_content",$i,64);
if($ss){
$str.=substr("$pri_content",$i*64,64)."\n";
}else{
break;
}
}
$str=trim($str);
$str.="\n-----END PUBLIC KEY-----";
 file_put_contents(ROOT_PATH.'/public/rsa/'.'/gongyao.pem',$str);


或者:


$private_key=“***********”
$str        = chunk_split($private_key, 64, "\n");
$private_key = "-----BEGIN RSA PRIVATE KEY-----\n$str-----END RSA PRIVATE KEY-----\n";

转换为程序所需要的格式




php RSA加密解密使用的方法

栏目导航

  1. 杂谈
  2. PHP
  3. 建站
  4. Python
  5. linux

手机扫码访问