飛鴿傳書資料加密分析

2021-05-21 14:19:27 字數 1201 閱讀 9948

飛鴿傳書的通訊資料加密採用了rsa+blowfish

rsa部分關鍵函式

mainwin.cpp

bool tmainwin::setupcryptapi(void)

bool tmainwin::setupcryptapicore(int ctl_***)

bool tmainwin::setuprsakey(int bitlen, int ctl_***)

主要是初始化這一套函式,生成公私鑰對,私鑰經bool tmainwin::storeprivblob(byte *rawblob, int rawbloblen)放到feiq目錄的feigcfg.xml中,公鑰經pubkey.setbyblob(data, cap)放到pubkey類中,以備將來通訊時使用。此處需要注意的是私鑰放到了feigcfg.xml中,feiq在啟動時會直接從這個檔案中讀出私 鑰,只要它存在,所以feigcfg.xml也就成了通訊保密中的關鍵環節。

blowfish部分關鍵函式

blowfish.cpp

dword cblowfish::encrypt(const byte *pinput, byte *poutput, dword lsize, int mode, _int64 iv)

dword cblowfish::decrypt(const byte *pinput, byte *poutput, dword lsize, int mode, _int64 iv)

feiq在收到通訊(聊天)資料後,會使用函式進行解密

recvdlg.cpp

bool trecvdlg::decryptmsg()

當然收發的過程中使用了上文闡述的rsa+blowfish:

a給b 發訊息,a先告訴b我要發訊息給你,b收到後把自己的公鑰傳送給a,a用b的公鑰加密等處理資料,然後發給b,b收到後用私鑰解密,解密的結果又作為blowfish演算法的引數。

具體如下:

if (!pcryptdecrypt(hexkey, 0, true, 0, (byte *)skey, (dword *)&len))

cblowfish    bl(skey, len);

hexstr2bin(msg_hex, (byte *)msg.msgbuf, sizeof(msg.msgbuf), &msglen);

bl.decrypt((byte *)msg.msgbuf, (byte *)msg.msgbuf, msglen);

飛鴿傳書2009

摘要 區域網聊天用什麼軟體最方便呢?上個學期新來的舍友告訴的飛鴿傳書2009這個軟體,確實很實用,在區域網中,特別是像宿舍 或者辦公室,不用再找網路上的芳鄰或者qq,後兩都麻煩,網路上的芳鄰經常因為各種原因用不了,qq不能傳資料夾,還是這個比較方便。並且速度快,那次跟朋友傳好像是到了7m多的吧,強烈...

飛鴿傳書2007

飛鴿傳書2007年,企業在計算機 軟體和服務等方面的支出將出現6年來的首次下降,而ipmsg freeeim和xeim很可能成為受影響最大的it公司。據報道,知名投行公司日前在報告中預計,09年全球企業it支出將同比下降4 其中發達國家市場將同比下降8 同時集團分析師布則表示,對軟體開發商來說,明年...

飛鴿傳書2007

自從飛鴿傳書2007自發布以來,產品以其獨特的設計 新穎的風格 完善的服務而受到了使用者的好評,隨著 使用者量的不斷增加,使用者在使用中給程式提了很多中肯的意見或建議,也使得飛鴿傳書2007的功能越來越強 大!產品使用者量也在不斷攀公升,我們給予使用者提供的是更便利的網上開店程式,使用者給予我們的是...