成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

PHP 與 C++ RSA加解密問題記錄

testHs / 603人閱讀

摘要:第二次訪問接口,客戶端需使用返回公鑰加密訪問參數(shù),之后將加密后的參數(shù)和一起發(fā)送給服務(wù)端進行驗證。關(guān)于函數(shù)的詳細介紹可以看上一位朋友的博客,鏈接在此簡單總結(jié)用加密公鑰傳遞給用公鑰加密信息傳遞給解密

RSA非對稱加密,在網(wǎng)絡(luò)鑒權(quán)中使用很多。本人也是在PHP與C++交互鑒權(quán)時出現(xiàn)問題,在解決問題過程中發(fā)現(xiàn),網(wǎng)上對相關(guān)問題的描述很少,所在這里記錄下,希望對遇到相似問題的朋友有所幫助。

問題情景:

由于項目需求,需要PHP寫接口提供給C++調(diào)用,在接口返回數(shù)據(jù)之前,需要對訪問者進行鑒權(quán)已增加數(shù)據(jù)訪問安全性。

針對需求,我們采用的是兩次握手完成鑒權(quán)。

第一次訪問接口不帶參數(shù),接口返回token和RSA公鑰(公鑰用base64加密,方便傳輸)。

第二次訪問接口,客戶端需使用返回公鑰加密訪問參數(shù),之后將加密后的參數(shù)和token一起發(fā)送給服務(wù)端進行驗證。服務(wù)端收到訪問數(shù)據(jù)后,對加密參數(shù)用私鑰解密,檢查參數(shù)是否符合要求,完成鑒權(quán)過程。

我們的問題出現(xiàn)在第二次訪問時,發(fā)送過來的加密參數(shù),無法通過私鑰解密。

注:公鑰和私鑰有PHP生成,使用這對公鑰私鑰可以在PHP端完成加解密,使用相同的公鑰私鑰也可以在C++端完成加解密,但兩者互通就會出現(xiàn)問題。

解決過程:

直接上正確思路,我們使用相同公鑰對相同參數(shù)進行加密后發(fā)現(xiàn),兩者長度相差很大,于是判定應(yīng)該是加密后兩者的編碼方式不同,據(jù)我了解RSA加密后C++端應(yīng)該是輸出十六進制的密文,而PHP使用openssl_public_encrypt 公鑰加密后的密文應(yīng)該是ASCII碼字符串,兩者長度相差很大。

根據(jù)以上判斷,C++發(fā)送給PHP的是十六進制密文,而使用openssl_private_decrypt解密需要的是ASCII碼字符串,當然解不出來了。既然知道問題所在,那我們把十六進制的密文轉(zhuǎn)換成ASCII碼字符串不就可以解決問題了,于是在PHP端使用pack("H*", param) 轉(zhuǎn)碼密文,之后果然順利解密。

關(guān)于pack函數(shù)的詳細介紹可以看OSC上一位朋友的博客,鏈接在此

簡單總結(jié):

1.用pack(“H*”)

2.php base64加密公鑰傳遞給C++

3.C++ 用公鑰加密信息 post傳遞給PHP解密

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/28343.html

相關(guān)文章

  • Golang 實現(xiàn)RSA 解密(附帶php

    摘要:安全總是很重要的,各個語言對于通用的加密算法都會有實現(xiàn)。對于和加密算法本身,請查閱相關(guān)資料在中,很多功能經(jīng)常是一個函數(shù)解決而中的卻不是。該文討論加密解密。一概要這是一個非對稱加密算法,一般通過公鑰加密,私鑰解密。 安全總是很重要的,各個語言對于通用的加密算法都會有實現(xiàn)。前段時間,用Go實現(xiàn)了RSA和DES的加密解密,在這分享一下。(對于RSA和DES加密算法本身,請查閱相關(guān)資料) 在P...

    kun_jian 評論0 收藏0
  • 利用RSA對前后端密的探索

    摘要:項目地址前后端交互時為了保證信息安全可使用方式加密信息,在數(shù)據(jù)量大的時候可采用結(jié)合方式。由于加密和解密使用同樣規(guī)則簡稱密鑰,這被稱為對稱加密算法。從那時直到現(xiàn)在,算法一直是最廣為使用的非對稱加密算法。 RSA-JS-PHP 項目地址rsa-js-php 前后端交互時為了保證信息安全可使用RSA方式加密信息,在數(shù)據(jù)量大的時候可采用DES+RSA結(jié)合方式。DEMO演示地址 一點歷史 1...

    banana_pi 評論0 收藏0
  • 登陸認證、web api接口調(diào)用、支付接口調(diào)用等場合經(jīng)常涉及到:md5、sh、 rsa等算法

    摘要:簡介地址實際項目中的登陸認證接口調(diào)用支付接口調(diào)用等場合經(jīng)常涉及到等算法。各大銀行接口中經(jīng)常使用算法對調(diào)用接口參數(shù)進行簽名防篡改。使用端見端見特點便于理解,使用廣泛。這就使加密的計算量很大。對方收到信息后,用不同的密鑰解密并可核對信息摘要。 PHP-RSA簡介 github 地址 https://github.com/lmxdawn/PH... 實際項目中的登陸認證、web api接口調(diào)...

    Bryan 評論0 收藏0
  • 登陸認證、web api接口調(diào)用、支付接口調(diào)用等場合經(jīng)常涉及到:md5、sh、 rsa等算法

    摘要:簡介地址實際項目中的登陸認證接口調(diào)用支付接口調(diào)用等場合經(jīng)常涉及到等算法。各大銀行接口中經(jīng)常使用算法對調(diào)用接口參數(shù)進行簽名防篡改。使用端見端見特點便于理解,使用廣泛。這就使加密的計算量很大。對方收到信息后,用不同的密鑰解密并可核對信息摘要。 PHP-RSA簡介 github 地址 https://github.com/lmxdawn/PH... 實際項目中的登陸認證、web api接口調(diào)...

    Charles 評論0 收藏0
  • 登陸認證、web api接口調(diào)用、支付接口調(diào)用等場合經(jīng)常涉及到:md5、sh、 rsa等算法

    摘要:簡介地址實際項目中的登陸認證接口調(diào)用支付接口調(diào)用等場合經(jīng)常涉及到等算法。各大銀行接口中經(jīng)常使用算法對調(diào)用接口參數(shù)進行簽名防篡改。使用端見端見特點便于理解,使用廣泛。這就使加密的計算量很大。對方收到信息后,用不同的密鑰解密并可核對信息摘要。 PHP-RSA簡介 github 地址 https://github.com/lmxdawn/PH... 實際項目中的登陸認證、web api接口調(diào)...

    Half 評論0 收藏0

發(fā)表評論

0條評論

testHs

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<