轉自:http://blog.csdn.net/clh604/article/details/20224735#
PHP服務端與客戶端交互、提供開放api時,通常需要對敏感的部分api數據傳輸進行數據加密,這時候rsa非對稱加密就能派上用處了,下面通過一個例子來說明如何用php來實現數據的加密解密
1、加密解密的第一步是生成公鑰、私鑰對,私鑰加密的內容能通過公鑰解密(反過來亦可以)
下載開源RSA密鑰生成工具openssl(通常Linux系統都自帶該程序),解壓縮至獨立的文件夾,進入其中的bin目錄,執行以下命令:
openssl genrsa -out rsa_private_key.pem 1024
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
第一條命令生成原始 RSA私鑰文件 rsa_private_key.pem,第二條命令將原始 RSA私鑰轉換為 pkcs8格式,第三條生成RSA公鑰 rsa_public_key.pem
從上面看出通過私鑰能生成對應的公鑰,因此我們將私鑰private_key.pem用在服務器端,公鑰發放給Android跟iOS等前端
2、php中用生成的公鑰、私鑰進行加密解密,直接上代碼