中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

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

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

文章目錄

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

1 外聯(lián)接口

1.1 接口類的封裝

  // 讀共享內(nèi)存中的秘鑰, 進(jìn)行對稱加密// 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);}

在這里插入圖片描述

  • 可以參考這個(gè)項(xiàng)目的實(shí)現(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)存與配置文件

提供的接口不是一個(gè)應(yīng)用程序 -> 不是進(jìn)程

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

2 json格式配置文件的定義

2.1 共享內(nèi)存中存儲(chǔ)的節(jié)點(diǎn)結(jié)構(gòu)

  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;    // 秘鑰的編號(hào)char clientID[12];    // 客戶端ID, 客戶端的標(biāo)識(shí)char serverID[12];    // 服務(wù)器ID, 服務(wù)器標(biāo)識(shí)char seckey[128];    // 對稱加密的秘鑰};

2.2 服務(wù)器端配置文件


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

2.3 客戶端配置文件

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

2.4 改進(jìn)配置文件

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

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

class SecKeyShm : public BaseShm
{
public:// 打開或創(chuàng)建一塊共享內(nèi)存// 這個(gè)操作是在父類中做的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);// 通過這個(gè)函數(shù)讀共享內(nèi)存中的第一個(gè)NodeSecKeyInfo// 給客戶端使用// 這個(gè)不會(huì)NodeSecKeyInfo shmFirstNode();private:int m_maxNode;
};
NodeSecKeyInfo SecKeyShm::shmRead(int keyID)
{int ret = 0;// 關(guān)聯(lián)共享內(nèi)存NodeSecKeyInfo* pAddr = NULL;pAddr = static_cast<NodeSecKeyInfo*>(mapShm());if (pAddr == NULL){cout << "共享內(nèi)存關(guān)聯(lián)失敗..." << endl;return NodeSecKeyInfo();}cout << "共享內(nèi)存關(guān)聯(lián)成功..." << endl;//遍歷網(wǎng)點(diǎn)信息int i = 0;NodeSecKeyInfo info;NodeSecKeyInfo* pNode = NULL;// 通過clientID和serverID查找節(jié)點(diǎn)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é)點(diǎn)信息, 拷貝到傳出參數(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)/動(dòng)態(tài))

4.1 相關(guān)的指令

4.1.1 靜態(tài)庫

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

4.1.2 動(dòng)態(tài)庫

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

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

打包加解密的庫

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

4.2.2 將封裝好的類文件加入到項(xiàng)目中

在這里插入圖片描述

4.2.3 在屬性頁中添加庫依賴項(xiàng)

這里要注意jsoncpp的寫法,

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

因?yàn)槲以诎惭bjson的時(shí)候創(chuàng)建軟連接的名字是libjsoncpp.so,因此這里寫的jsoncpp

jsoncpp;crypto

在這里插入圖片描述

4.2.4 配置遠(yuǎn)程主機(jī),啟動(dòng)調(diào)試,確認(rèn)代碼沒有問題

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

4.2.5 遠(yuǎn)程主機(jī)上刪掉main.cpp或者test.cpp

在這里插入圖片描述

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

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

在這里插入圖片描述

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

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

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

5.1 測試代碼的倉庫:

在第4部分,打包的動(dòng)態(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 先啟動(dòng)秘鑰協(xié)商的客戶端和服務(wù)端 ,并查看共享內(nèi)存的狀態(tài)

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

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

在這里插入圖片描述

http://www.risenshineclean.com/news/37349.html

相關(guān)文章:

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