欧美日韩精品在线,国内精品久久久久久久久,一级毛片恃级毛片直播,清纯唯美亚洲综合欧美色

php pki加密技術(shù)(openssl)詳解_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:php5.3 注意事項(xiàng)說明
php5.3 新特性 1.支持命名空間(namespace) 5.3以前 復(fù)制代碼 代碼如下: ?php class Zend_Db_Table_Select { //表示當(dāng)前這個(gè)類文件位于Zend/Db/Table下 } 5.3 復(fù)制代碼 代碼如下: ?php namespace Zend/Db/Table class Select { } 2.支持延遲靜態(tài)綁定 5.3以前(__CLASS

本篇文章是對(duì)php中的pki加密技術(shù)(openssl)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下   復(fù)制代碼 代碼如下:
<?php
//pki加密
//使用pki加密需要開啟 openssl擴(kuò)展
//php.ini extension = php_openssl.dll擴(kuò)展
/*pki模式是
* 公鑰加密,私鑰解密;
* 私鑰加密,公鑰解密;
*/
//私鑰加密,公鑰解密
//客戶端
//$data數(shù)據(jù)
$data = 'abcd';
//獲取私鑰 $priv_key_id
$priv_key_id = openssl_get_privatekey(file_get_contents('99bill-rsa.pem', r));
//獲取公鑰 $pub_key_id
$pub_key_id = openssl_get_publickey(file_get_contents('99bill-rsa.cer', r));
//$data首選通過SHA1哈希加密,然后通過$priv_key_id私鑰加密,生成簽名$signature
//$signature就是加密過的簽名
//openssl_sign()加密函數(shù),至于它的解密方法我不知道??????????????????????
openssl_sign($data, $signature, $priv_key_id, OPENSSL_ALGO_SHA1);
//還有兩種加密函數(shù),而且這兩種加密函數(shù)有解密方法,知道
//第一種:私鑰加密,公鑰解密
//$data要加密的數(shù)據(jù),$crypted是加密生成的數(shù)據(jù),$decrypted是解密生成的數(shù)據(jù); $data與$decrypted值相同
//通過$priv_key_id私鑰加密,生成$crypted;
openssl_private_encrypt($data, $crypted, $priv_key_id);
echo $crypted;
//通過$pub_key_id公鑰解密,生成$decrypted
openssl_public_decrypt($crypted, $decrypted , $pub_key_id);
//第二種:公鑰加密,私鑰解密
//$data要加密的數(shù)據(jù),$crypted是加密生成的數(shù)據(jù),$decrypted是解密生成的數(shù)據(jù); $data與$decrypted值相同
//通過$pub_key_id公鑰加密,生成$crypted;
openssl_public_encrypt($data, $crypted, $pub_key_id);
//通過$priv_key_id私鑰解密,生成$decrypted
openssl_private_decrypt($crypted, $decrypted, $priv_key_id);
//注意事項(xiàng),我這邊的獲取公鑰與私鑰的文件是不對(duì)應(yīng)的
//正常情況,獲取公鑰與私鑰文件是一一對(duì)應(yīng)的,這里我使用快錢的。
//快錢給了私鑰生成文件,對(duì)應(yīng)的公鑰生成文件在快錢那邊
//快錢給了公鑰生成文件,對(duì)應(yīng)的私鑰生成文件在快錢那邊
//也就是缺少了一個(gè)公鑰生成文件和一個(gè)私鑰生成文件
//我始終沒找到一個(gè)一一對(duì)應(yīng)的私鑰、公鑰生成文件,如果你找的了發(fā)我一份,謝謝。
// openssl_verify()方法驗(yàn)證簽名是否正確(私鑰加密生成的數(shù)據(jù)返回來,用對(duì)應(yīng)的公鑰驗(yàn)證),只有這一種情況。
// $signature公鑰加密生成的數(shù)據(jù),$data原始數(shù)據(jù),成功返回1,失敗返回0,錯(cuò)誤返回-1
// $pub_key_id公鑰
openssl_verify($data, $signature, $pub_key_id);
//從內(nèi)存中釋放私鑰或公鑰
openssl_free_key($priv_key_id);
openssl_free_key($pub_key_id);


生成私鑰與公鑰
genrsa -out private-rsa.pem
rsa -in private-rsa.pem -pubout -out pubic-rsa.cer

分享:php ios推送(代碼)
本篇文章是對(duì)php ios推送進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下 復(fù)制代碼 代碼如下: ?php //php需要開啟ssl(OpenSSL)支持 $apnsCert = ck.pem;//連接到APNS時(shí)的證書許可文件,證書需格外按要求創(chuàng)建 $pass = 123456;//證書口令 $serverUrl = ssl://gateway.sandbox.pus

來源:模板無憂//所屬分類:PHP教程/更新時(shí)間:2013-07-03
相關(guān)PHP教程