国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

重慶網(wǎng)站建設公司銷售seo營銷推廣多少錢

重慶網(wǎng)站建設公司銷售,seo營銷推廣多少錢,滄州網(wǎng)站制作網(wǎng)站,網(wǎng)站后臺編輯器無法顯示文章目錄 1 外聯(lián)接口1.1 接口類的封裝1.2 共享內(nèi)存與配置文件 2 json格式配置文件的定義2.1 共享內(nèi)存中存儲的節(jié)點結構2.2 服務器端配置文件2.3 客戶端配置文件2.4 改進配置文件 3 共享內(nèi)存類修改4 將接口打包成庫(靜態(tài)/動態(tài))4.1 相關的指令4.1.1 靜態(tài)庫4.1.2 動態(tài)庫 4.2 外聯(lián)接…

文章目錄

  • 1 外聯(lián)接口
    • 1.1 接口類的封裝
    • 1.2 共享內(nèi)存與配置文件
  • 2 json格式配置文件的定義
    • 2.1 共享內(nèi)存中存儲的節(jié)點結構
    • 2.2 服務器端配置文件
    • 2.3 客戶端配置文件
    • 2.4 改進配置文件
  • 3 共享內(nèi)存類修改
  • 4 將接口打包成庫(靜態(tài)/動態(tài))
    • 4.1 相關的指令
      • 4.1.1 靜態(tài)庫
      • 4.1.2 動態(tài)庫
    • 4.2 外聯(lián)接口的實現(xiàn) - 以金融安全傳輸項目為例
      • 4.2.1 創(chuàng)建一個空Linux項目
      • 4.2.2 將封裝好的類文件加入到項目中
      • 4.2.3 在屬性頁中添加庫依賴項
      • 4.2.4 配置遠程主機,啟動調(diào)試,確認代碼沒有問題
      • 4.2.5 遠程主機上刪掉main.cpp或者test.cpp
      • 4.2.6 將剩余的cpp打包成動態(tài)庫
  • 5 動態(tài)庫的測試
    • 5.1 測試代碼的倉庫:
    • 5.1 先啟動秘鑰協(xié)商的客戶端和服務端 ,并查看共享內(nèi)存的狀態(tài)
    • 5.2 測試用的客戶端是好的,但是服務端沒法跟共享內(nèi)存關聯(lián)。很奇怪,留一個bug...待解決

1 外聯(lián)接口

1.1 接口類的封裝

  // 讀共享內(nèi)存中的秘鑰, 進行對稱加密// des , 3des , aesclass MyInterface{public:// json參數(shù)磁盤的json格式的配置文件MyInterface(string json);~MyInterface();// 數(shù)據(jù)加密// 參數(shù): 待加密的數(shù)據(jù)->明文, 返回值: 密文string encryptData_des(string str);string encryptData_3des(string str);string encryptData_aes(string str);// 數(shù)據(jù)解密// 參數(shù): 待解密的數(shù)據(jù)-密文, 返回值: 明文string decryptData_des(string str);string decryptData_3des(string str);string decryptData_aes(string str);}

在這里插入圖片描述

  • 可以參考這個項目的實現(xiàn),將加解密封各自封裝好

https://github.com/Chufeng-Jiang/OpenSSL_Secure_Data_Transmission_Platform/tree/dev_origin/Module%20Preparation%20and%20Test/07.CryptoTest

1.2 共享內(nèi)存與配置文件

提供的接口不是一個應用程序 -> 不是進程

  • 如何從共享內(nèi)存中讀數(shù)據(jù)?
    • 雖然接口不是程序, 但是要被業(yè)務程序調(diào)用
      • 業(yè)務程序是進程
        • 通過業(yè)務程序完成進程間通信
  • 外聯(lián)接口要求必須要通用
    • 必須用通過配置文件讀配置信息 -> 找到共享內(nèi)存

2 json格式配置文件的定義

2.1 共享內(nèi)存中存儲的節(jié)點結構

  class NodeSecKeyInfo{public:NodeSecKeyInfo() : status(0), seckeyID(0){bzero(clientID, sizeof(clientID));bzero(serverID, sizeof(serverID));bzero(seckey, sizeof(seckey));}int status;        // 秘鑰狀態(tài): 1可用, 0:不可用int seckeyID;    // 秘鑰的編號char clientID[12];    // 客戶端ID, 客戶端的標識char serverID[12];    // 服務器ID, 服務器標識char seckey[128];    // 對稱加密的秘鑰};

2.2 服務器端配置文件


{"ServerID":"0001",        // 當前秘鑰協(xié)商服務器的ID"ClientID":"1111"        // 不能寫死,和當前業(yè)務服務器通信的客戶端ID --> 這個是動態(tài)的"ShmKey":"/usr/lib",    // 通過 shmKey 打開一塊已經(jīng)存在的共享內(nèi)存"MaxNode":100,          // 共享內(nèi)存中存儲的最大節(jié)點數(shù) -> 用于遍歷
}

2.3 客戶端配置文件

{"ServerID":"0001","ClientID":"1111""shmKey":"/usr/local",    // 通過 shmKey 打開一塊已經(jīng)存在的共享內(nèi)存"MaxNode":1,            // 共享內(nèi)存中存儲的最大節(jié)點數(shù) -> 用于遍歷
}

2.4 改進配置文件

// 將配置文件中的serverID和clientID去掉
// 找秘鑰的方式:- 通過clientID和serverID進行查找- 通過秘鑰ID查找// 通過配置文件打開共享內(nèi)存
{"shmKey":"/usr/local",    // 通過 shmKey 打開一塊已經(jīng)存在的共享內(nèi)存"MaxNode":1,            // 共享內(nèi)存中存儲的最大節(jié)點數(shù) -> 用于遍歷
}

3 共享內(nèi)存類修改

class SecKeyShm : public BaseShm
{
public:// 打開或創(chuàng)建一塊共享內(nèi)存// 這個操作是在父類中做的SecKeyShm(int key, int maxNode);SecKeyShm(string pathName, int maxNode);~SecKeyShm();void shmInit();int shmWrite(NodeSecKeyInfo* pNodeInfo);NodeSecKeyInfo shmRead(string clientID, string serverID);/**********************************************/NodeSecKeyInfo shmRead(int keyID);// 通過這個函數(shù)讀共享內(nèi)存中的第一個NodeSecKeyInfo// 給客戶端使用// 這個不會NodeSecKeyInfo shmFirstNode();private:int m_maxNode;
};
NodeSecKeyInfo SecKeyShm::shmRead(int keyID)
{int ret = 0;// 關聯(lián)共享內(nèi)存NodeSecKeyInfo* pAddr = NULL;pAddr = static_cast<NodeSecKeyInfo*>(mapShm());if (pAddr == NULL){cout << "共享內(nèi)存關聯(lián)失敗..." << endl;return NodeSecKeyInfo();}cout << "共享內(nèi)存關聯(lián)成功..." << endl;//遍歷網(wǎng)點信息int i = 0;NodeSecKeyInfo info;NodeSecKeyInfo* pNode = NULL;// 通過clientID和serverID查找節(jié)點cout << "maxNode: " << m_maxNode << endl;for (i = 0; i < m_maxNode; i++){pNode = pAddr + i;cout << i << endl;cout << "keyID: " <<keyID << endl;//cout << "clientID 比較: " << pNode->clientID << ", " << clientID.data() << endl;//cout << "serverID 比較: " << pNode->serverID << ", " << serverID.data() << endl;if (pNode->seckeyID == keyID){// 找到的節(jié)點信息, 拷貝到傳出參數(shù)info = *pNode;cout << "++++++++++++++" << endl;cout << info.clientID << " , " << info.serverID << ", "<< info.seckeyID << ", " << info.status << ", "<< info.seckey << endl;cout << "===============" << endl;break;}}unmapShm();return info;
}

4 將接口打包成庫(靜態(tài)/動態(tài))

4.1 相關的指令

4.1.1 靜態(tài)庫

// 生成.o
gcc/g++ *.c/*.cpp -c// 打包.o
ar rcs libxxx.a  *.o

4.1.2 動態(tài)庫

# 生成.o -> 和位置無關使用的是相對地址
gcc/g++ *.c/*.cpp -c -fpic
# 生成動態(tài)庫
gcc/g++ -shared *.o -o libxxx.so

4.2 外聯(lián)接口的實現(xiàn) - 以金融安全傳輸項目為例

打包加解密的庫

4.2.1 創(chuàng)建一個空Linux項目

4.2.2 將封裝好的類文件加入到項目中

在這里插入圖片描述

4.2.3 在屬性頁中添加庫依賴項

這里要注意jsoncpp的寫法,

如果centos里json動態(tài)庫的名字是libjson.so,那么就是寫json.

因為我在安裝json的時候創(chuàng)建軟連接的名字是libjsoncpp.so,因此這里寫的jsoncpp

jsoncpp;crypto

在這里插入圖片描述

4.2.4 配置遠程主機,啟動調(diào)試,確認代碼沒有問題

在這里插入圖片描述
在這里插入圖片描述

4.2.5 遠程主機上刪掉main.cpp或者test.cpp

在這里插入圖片描述

4.2.6 將剩余的cpp打包成動態(tài)庫

g++ -c *.cpp -std=c++11 -fpic

在這里插入圖片描述

g++ -shared *.o -o libinterface.so 

在這里插入圖片描述
將頭文件里的API和libxxx.so文件發(fā)給用戶就可以了。

5 動態(tài)庫的測試

5.1 測試代碼的倉庫:

在第4部分,打包的動態(tài)庫所在的位置為:/root/projects/Interface
mv libinterface.so /usr/lib/
在這里插入圖片描述

  • 編譯指令
g++ *.cpp   -lpthread -L/root/projects/Interface -linterface -ljsoncpp -lcrypto   -std=c++11g++ *.cpp -lpthread -linterface -ljsoncpp -lcrypto -std=c++11

5.1 先啟動秘鑰協(xié)商的客戶端和服務端 ,并查看共享內(nèi)存的狀態(tài)

在這里插入圖片描述在這里插入圖片描述

5.2 測試用的客戶端是好的,但是服務端沒法跟共享內(nèi)存關聯(lián)。很奇怪,留一個bug…待解決

在這里插入圖片描述

http://m.aloenet.com.cn/news/37349.html

相關文章:

  • 珠海企業(yè)網(wǎng)站建設seo優(yōu)化seo外包
  • b2b網(wǎng)站怎么發(fā)布信息站長之家論壇
  • 專業(yè)醫(yī)院網(wǎng)站建設百度網(wǎng)盤下載
  • 太原市做網(wǎng)站公司微信營銷軟件手機版
  • 企業(yè)做網(wǎng)站大概多少錢湖南關鍵詞網(wǎng)絡科技有限公司
  • plone wordpressseo人工智能
  • 平易云 網(wǎng)站建設看廣告賺錢
  • 政府網(wǎng)站建設培訓講話惠州優(yōu)化怎么做seo
  • 漂亮企業(yè)網(wǎng)站源碼關鍵詞優(yōu)化排名軟件
  • 網(wǎng)站設計概述500字關鍵詞批量調(diào)詞軟件
  • 學生做爰網(wǎng)站微信群推廣網(wǎng)站
  • 專業(yè)鄭州做網(wǎng)站的公司今日國家新聞
  • 動態(tài)網(wǎng)站開發(fā)結束語東莞優(yōu)化怎么做seo
  • 彩票網(wǎng)站建設方案看網(wǎng)站時的關鍵詞
  • 百度競價 十一 pc網(wǎng)站 手機網(wǎng)站seo技術團隊
  • 岳陽市委網(wǎng)站免費seo網(wǎng)站推廣在線觀看
  • 湛江網(wǎng)站設計模板視頻500個游戲推廣群
  • 網(wǎng)站互動營銷成人編程培訓機構排名前十
  • 融資是什么意思株洲seo優(yōu)化報價
  • 馬云1688網(wǎng)站在濮陽如何做圖片外鏈在線生成
  • 大型b2c網(wǎng)站開發(fā)百度推廣app下載官方
  • 怎么做領券網(wǎng)站上海知名seo公司
  • 電腦做網(wǎng)站電腦編程百度指數(shù)怎么提升
  • 手機視頻網(wǎng)站怎么做保定seo推廣公司
  • 尚云網(wǎng)站建設廣東網(wǎng)約車漲價
  • 可以做書的網(wǎng)站湘潭seo優(yōu)化
  • 網(wǎng)站建設 加強宣傳百度開戶資質
  • 昆明網(wǎng)站建設_云南網(wǎng)站建設網(wǎng)頁設計制作
  • 服務器做兩個網(wǎng)站電視劇排行榜百度搜索風云榜
  • 做網(wǎng)站需要哪些知識論述搜索引擎優(yōu)化的具體措施