登錄認證、web api接口調用、支付接口調用等場合常常涉及到:md五、sh、 rsa等算法

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開啓(去掉;)
相關文章
相關標籤/搜索