首頁 php教程 PHP源码 PHP下SSL加密解密、验证、签名方法(超简单)

PHP下SSL加密解密、验证、签名方法(超简单)

May 25, 2016 pm 05:07 PM

PHP下SSL加密解密、验证、签名方法。 
超级简单。依赖于OpenSSL扩展

签名:

function sign($data) {
    //读取私钥文件
    $priKey = file_get_contents('key/rsa_private_key.pem');
 
    //转换为openssl密钥,必须是没有经过pkcs8转换的私钥
    $res = openssl_get_privatekey($priKey);
 
    //调用openssl内置签名方法,生成签名$sign
    openssl_sign($data, $sign, $res);
 
    //释放资源
    openssl_free_key($res);
 
    return $sign;
}
登入後複製

验证:

function verify($data, $sign)  {
    //读取支付宝公钥文件
    $pubKey = file_get_contents('key/alipay_public_key.pem');
 
    //转换为openssl格式密钥
    $res = openssl_get_publickey($pubKey);
 
    //调用openssl内置方法验签,返回bool值
    $result = (bool)openssl_verify($data, $sign, $res);
     
    //释放资源
    openssl_free_key($res);
 
    return $result;
}
登入後複製

解密:

function decrypt($content) {
 
    //读取商户私钥
    $priKey = file_get_contents('key/rsa_private_key.pem');
     
    //转换为openssl密钥,必须是没有经过pkcs8转换的私钥
    $res = openssl_get_privatekey($priKey);
 
    //声明明文字符串变量
    $result  = '';
 
    //循环按照128位解密
    for($i = 0; $i < strlen($content)/128; $i++  ) {
        $data = substr($content, $i * 128, 128);
         
    //拆分开长度为128的字符串片段通过私钥进行解密,返回$decrypt解析后的明文
        openssl_private_decrypt($data, $decrypt, $res);
 
    //明文片段拼接
        $result .= $decrypt;
    }
 
    //释放资源
    openssl_free_key($res);
 
    //返回明文
    return $result;
}
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1268
29
C# 教程
1248
24