PHP-RSA
簡介php
github 地址 https://github.com/lmxdawn/PH...html
實際項目中的登錄認證、web api接口調用、支付接口調用等場合常常涉及到:md五、sh、 rsa等算法。
各大銀行接口中常常使用MD5算法對調用接口參數進行簽名防篡改。git
若是你和我有一樣的問題 :github
web api調用認證中,客戶端和服務端經過相同的公鑰對提交參數進行MD5加密,進行驗證。但
2014年中國山東大學的王小云教授公佈破譯了MD五、HAVAL-12八、 MD4和RIPEMD算法的報告。經過加
速的雜湊與衝撞方法破譯了MD5算法,MD5還安全嗎?web
RSA定義:算法
RSA爲公鑰加密體制: A.乙方生成兩把密鑰(公鑰和私鑰)。公鑰是公開的,任何人均可以得到,私鑰則是保密的。 B.甲方獲取乙方的公鑰,而後用它對信息加密。 C.乙方獲得加密後的信息,用私鑰解密。
RSA使用:api
web 端 見 test_rsa.html php 端 見 test_rsa.php
RSA特色:
A.便於理解,使用普遍。安全
RSA算法是第一個能同時用於加密和數字簽名的算法,也易於理解和操做。 RSA是被研究得最普遍的公鑰算法,從提出到現今的三十多年裏,經歷了各類攻擊的考驗, 逐漸爲人們接受,廣泛認爲是目前最優秀的公鑰方案之一。
B.缺點與不足:工具
加密和解密花費時間長、速度慢,只適合對少許數據進行加密。 爲提升保密強度,RSA密鑰至少爲500位長,通常推薦使用1024位。這就使加密的計算量很大。 爲減小計算量,在傳送信息時,常採用傳統加密方法與公開密鑰加密方法相結合的方式, 即信息採用改進的DES或IDEA對話密鑰加密,而後使用RSA密鑰加密對話密鑰和信息摘要。 對方收到信息後,用不一樣的密鑰解密並可覈對信息摘要。
須要原型工具:加密
OpenSSL下載地址:http://slproweb.com/products/...
安裝OpenSSL 隨意安裝到哪裏 點擊OpenSLL的bin目錄下的 openssl.exe 進行私鑰和公鑰的生成 生成私鑰 genrsa -out rsa_private_key.pem 1024 生成公鑰 rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem 將生產的私鑰、公鑰拷貝到你的PHP項目中 開啓PHP的OpenSSL擴展 將php.ini中的extension=php_openssl.dll開啓(去掉;)