php openssl

openssl簡介

OpenSSL是一套用于SSL/TLS協(xié)議的加密工具

其作用有:
1.生成私有密鑰.
2.生成證書,即數(shù)字簽名證書,它包含一個公有密鑰,可以用來單向的加密和解密數(shù)據(jù).即,使用公鑰加密的數(shù)據(jù),只能使用 私有密鑰解密.使用私鑰加密的數(shù)據(jù),可以使用公鑰來解密.

那SSL/TLS協(xié)議又是什么?

SSL/TLS協(xié)議的基本思路是采用公鑰加密法,也就是說,客戶端先向服務(wù)器端索要公鑰,然后用公鑰加密信息,服務(wù)器收到密文后,用自己的私鑰解密。(引用文章地址:http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

這里還涉及到加密的一些基礎(chǔ)知識:對稱加密和非對稱加密。
對稱加密:發(fā)送者和接受者使用同一個密鑰,發(fā)送者使用密匙加密了文件,接收者使用同樣的密匙解密,獲取信息。常見的對稱加密算法有:des/aes/3des.
非對稱加密:使用一對相對的密匙,分為公匙和私匙,私匙自己安全保存,而將公匙公開。公鑰與私鑰是一對,如果用公鑰對數(shù)據(jù)進行加密,只有用對應(yīng)的私鑰才能解密;如果用私鑰對數(shù)據(jù)進行加密,那么只有用對應(yīng)的公鑰才能解密。發(fā)送數(shù)據(jù)前只需要使用接收方的公匙加密就行了。常見的非對稱加密算法有RSA/DSA

之前常用的MD5加密算法是非對稱,不可逆的加密。

PHP的openssl擴展

wamp是默認開啟openssl的,在linux系統(tǒng)下可能需要編譯安裝擴展。

一些常用函數(shù):

1、string openssl_encrypt ( string $data , string $method , string $password)

其中$data為其要加密的數(shù)據(jù),$method是加密要使用的方法,$password是要使用的密匙,函數(shù)返回加密后的數(shù)據(jù);

$method列表可以使用openssl_get_cipher_methods()來獲取。

2、openssl_public_encrypt(string $data , string &$crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

使用公匙加密數(shù)據(jù),其中$data是要加密的數(shù)據(jù);$crypted是一個引用變量,加密后的數(shù)據(jù)會被放入這個變量中;$key是要傳入的公匙數(shù)據(jù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容