日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php非,PHP实现非对称加密

發(fā)布時(shí)間:2025/4/16 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php非,PHP实现非对称加密 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

非對(duì)稱加密

至于什么是非對(duì)稱加密,這里就不說啦,大家谷歌去吧。這里說明的是,最近在做一個(gè)對(duì)外的充值加密服務(wù),那么涉及到這個(gè)加密的處理,中間遇到幾個(gè)小問題,所以記錄下,方便自己下次查閱。

詳細(xì)代碼

/**

* 使用openssl實(shí)現(xiàn)非對(duì)稱加密

*

* @since 2015-11-10

*/

class Rsa

{

/**

* 私鑰

*

*/

private $_privKey;

/**

* 公鑰

*

*/

private $_pubKey;

/**

* 保存文件地址

*/

private $_keyPath;

/**

* 指定密鑰文件地址

*

*/

public function __construct($path)

{

if (empty($path) || !is_dir($path)) {

throw new Exception('請(qǐng)指定密鑰文件地址目錄');

}

$this->_keyPath = $path;

}

/**

* 創(chuàng)建公鑰和私鑰

*

*/

public function createKey()

{

$config = [

"config" => 'D:\wamp\bin\apache\apache2.4.9\conf\openssl.cnf',

"digest_alg" => "sha512",

"private_key_bits" => 4096,

"private_key_type" => OPENSSL_KEYTYPE_RSA,

];

// 生成私鑰

$rsa = openssl_pkey_new($config);

openssl_pkey_export($rsa, $privKey, NULL, $config);

file_put_contents($this->_keyPath . DIRECTORY_SEPARATOR . 'priv.key', $privKey);

$this->_privKey = openssl_pkey_get_public($privKey);

// 生成公鑰

$rsaPri = openssl_pkey_get_details($rsa);

$pubKey = $rsaPri['key'];

file_put_contents($this->_keyPath . DIRECTORY_SEPARATOR . 'pub.key', $pubKey);

$this->_pubKey = openssl_pkey_get_public($pubKey);

}

/**

* 設(shè)置私鑰

*

*/

public function setupPrivKey()

{

if (is_resource($this->_privKey)) {

return true;

}

$file = $this->_keyPath . DIRECTORY_SEPARATOR . 'priv.key';

$privKey = file_get_contents($file);

$this->_privKey = openssl_pkey_get_private($privKey);

return true;

}

/**

* 設(shè)置公鑰

*

*/

public function setupPubKey()

{

if (is_resource($this->_pubKey)) {

return true;

}

$file = $this->_keyPath . DIRECTORY_SEPARATOR . 'pub.key';

$pubKey = file_get_contents($file);

$this->_pubKey = openssl_pkey_get_public($pubKey);

return true;

}

/**

* 用私鑰加密

*

*/

public function privEncrypt($data)

{

if (!is_string($data)) {

return null;

}

$this->setupPrivKey();

$result = openssl_private_encrypt($data, $encrypted, $this->_privKey);

if ($result) {

return base64_encode($encrypted);

}

return null;

}

/**

* 私鑰解密

*

*/

public function privDecrypt($encrypted)

{

if (!is_string($encrypted)) {

return null;

}

$this->setupPrivKey();

$encrypted = base64_decode($encrypted);

$result = openssl_private_decrypt($encrypted, $decrypted, $this->_privKey);

if ($result) {

return $decrypted;

}

return null;

}

/**

* 公鑰加密

*

*/

public function pubEncrypt($data)

{

if (!is_string($data)) {

return null;

}

$this->setupPubKey();

$result = openssl_public_encrypt($data, $encrypted, $this->_pubKey);

if ($result) {

return base64_encode($encrypted);

}

return null;

}

/**

* 公鑰解密

*

*/

public function pubDecrypt($crypted)

{

if (!is_string($crypted)) {

return null;

}

$this->setupPubKey();

$crypted = base64_decode($crypted);

$result = openssl_public_decrypt($crypted, $decrypted, $this->_pubKey);

if ($result) {

return $decrypted;

}

return null;

}

/**

* __destruct

*

*/

public function __destruct() {

@fclose($this->_privKey);

@fclose($this->_pubKey);

}

}

?>

測試

$rsa = new Rsa('ssl-key');

//私鑰加密,公鑰解密

echo "待加密數(shù)據(jù):segmentfault.com\n";

$pre = $rsa->privEncrypt("segmentfault.com");

echo "加密后的密文:\n" . $pre . "\n";

$pud = $rsa->pubDecrypt($pre);

echo "解密后數(shù)據(jù):" . $pud . "\n";

//公鑰加密,私鑰解密

echo "待加密數(shù)據(jù):segmentfault.com\n";

$pue = $rsa->pubEncrypt("segmentfault.com");

echo "加密后的密文:\n" . $pue . "\n";

$prd = $rsa->privDecrypt($pue);

echo "解密后數(shù)據(jù):" . $prd;

重要問題

這里特別要注意的是在配置中要指定openssl.cnf的文件地址,或者設(shè)置個(gè)OPENSSL_CONF全局變量就可以了。

總結(jié)

以上是生活随笔為你收集整理的php非,PHP实现非对称加密的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线观看不卡的av | 视频一区二区在线 | 黄色片在线免费看 | 国产不卡精品 | 清纯粉嫩极品夜夜嗨av | 看了下面会湿的视频 | 一级黄色片在线播放 | 亚洲av永久无码精品 | 黄色网址哪里有 | 狂野欧美性猛交xxxx | 免费av毛片| 人人91| 成人爽a毛片一区二区免费 日本高清免费看 | 欧洲黄色片 | 午夜噜噜 | 亚洲人xxxx| 久久久无码人妻精品无码 | 老女人人体欣赏a√s | 国精产品一二三区精华液 | 悠悠色在线 | m3u8成人免费视频 | 人人舔| 奇米狠狠干 | 精品在线免费观看视频 | 国产深夜福利 | 97成人在线视频 | 亚洲精品一区二区三区中文字幕 | 欧美h视频在线观看 | 和黑帮大佬的365 | 香蕉小视频 | 九九香蕉视频 | 国产精品久久久久久久专区 | 亚洲女优视频 | 亚洲精品鲁一鲁一区二区三区 | 久久精品久| 免费av软件| 91国偷自产一区二区三区女王 | 在线成人av | 成人av网站在线播放 | 中文字幕免费中文 | 怡春院一区二区 | av大片免费观看 | 四虎网址大全 | 6080亚洲精品一区二区 | 日韩在线电影一区 | 操碰视频在线 | 日韩不卡av| av中文字幕免费在线观看 | 中文字幕在线精品 | 欧美三级精品 | 久久久看片 | 中文 欧美 日韩 | 精品一区二区三区中文字幕 | 欧美精品videos极品 | 日韩亚洲欧美综合 | 国产一级黄 | 国产成a人亚洲精v品在线观看 | 欧美极品一区二区 | 成人小视频免费 | 综合久久一区二区 | 久久夫妻视频 | 日本阿v视频在线观看 | 色婷婷a| 河北彩花中文字幕 | 欧美不卡在线观看 | 精品一区二区在线观看 | 欧美人xxxx| 日韩乱码人妻无码系列中文字幕 | 国产欧美一区二区三区视频在线观看 | 国产免费内射又粗又爽密桃视频 | 永久免费无码av网站在线观看 | 狠狠人妻久久久久久综合蜜桃 | 精品一区二区三区不卡 | 小泽玛利亚在线 | 亚洲精品一二 | 国产一区二区内射 | 美女四肢被绑在床扒衣 | 香蕉视频色 | 男欢女爱久石 | 日本资源在线 | 白白色视频在线 | 日韩网站免费观看 | av小说在线 | 日韩欧美亚洲国产精品字幕久久久 | 韩国一区二区三区在线观看 | 短裙公车被强好爽h吃奶视频 | 播播开心激情网 | 日本国产一区 | 日韩一区不卡 | 成年人黄色av | 在线观看涩涩 | 亚洲男人精品 | 老司机深夜福利在线观看 | 精品在线二区 | 欧美精品一区在线 | 欧美一区二区三区公司 | 日日天天干 | 午夜影院一区二区三区 | 懂色av中文一区二区三区天美 |