本篇文章給大家分享的是有關(guān)C語(yǔ)言網(wǎng)絡(luò)編程和跨平臺(tái)代碼安全性的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
創(chuàng)新互聯(lián)專注于靈璧網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供靈璧營(yíng)銷型網(wǎng)站建設(shè),靈璧網(wǎng)站制作、靈璧網(wǎng)頁(yè)設(shè)計(jì)、靈璧網(wǎng)站官網(wǎng)定制、微信小程序定制開(kāi)發(fā)服務(wù),打造靈璧網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供靈璧網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。C語(yǔ)言語(yǔ)法簡(jiǎn)潔,但內(nèi)涵豐富。對(duì)一個(gè)聰明的人來(lái)說(shuō),可能幾個(gè)小時(shí)就能學(xué)會(huì)使用C語(yǔ)言,但可能一輩也很難成為大師。C語(yǔ)言處處隱藏陷阱,沒(méi)有閱讀過(guò)大量?jī)?yōu)秀代碼,沒(méi)有思考過(guò)大師專家級(jí)代碼的特別之處,沒(méi)有寫(xiě)了過(guò)大量應(yīng)用程序,寫(xiě)的程序中往往容易不經(jīng)意間隱藏地雷。一旦爆發(fā),系統(tǒng)被炸的面目全非。
茲摘抄一個(gè)知名公司系統(tǒng)中的代碼研究
1. 移位陷阱
公司的大牛在寫(xiě)一個(gè)base64編解碼程序時(shí),使用了如下方法:
staticvoid encodeblock( unsigned char *in, unsigned char *out, int len )
{
out[0] = (unsigned char) cb64[ (int)(in[0]>> 2) ];
out[1] = (unsigned char) cb64[ (int)(((in[0]& 0x03) << 4) | ((in[1] & 0xf0) >> 4)) ];
out[2] = (unsigned char) (len > 1 ? cb64[(int)(((in[1] & 0x0f) << 2) | ((in[2] & 0xc0) >> 6)) ] :'=');
out[3] = (unsigned char) (len > 2 ? cb64[(int)(in[2] & 0x3f) ] : '=');
}
這在本系統(tǒng)中不錯(cuò),但卻隱藏著很大的風(fēng)險(xiǎn),系統(tǒng)是做為基礎(chǔ)的加密工具給公司各種各樣的嵌入式設(shè)備使用,這里隱藏著一個(gè)數(shù)組越界的地雷。(int)(in[0] >> 2)如果不&0x3f,在不同編繹器環(huán)境下,右移位后,左邊空拉有些是填充零,有些時(shí)填充1,有些是填充高符號(hào)位,這樣就會(huì)導(dǎo)致不同系統(tǒng)的加密出現(xiàn)數(shù)據(jù)一不致性,有時(shí)會(huì)溢出。
2. 對(duì)齊陷阱
Sizeof是在C語(yǔ)言里經(jīng)常使用的方法,有人把歸為運(yùn)算符,其他他計(jì)算結(jié)構(gòu)體變量的指針偏移相當(dāng)方便,有很多書(shū)推薦,因?yàn)樗?jì)算基礎(chǔ)類型變量時(shí)能根據(jù)系統(tǒng)和編繹器不同自動(dòng)計(jì)算調(diào)整,具有很強(qiáng)的自適應(yīng)性和跨平臺(tái)能力,但這種自適合性在單機(jī)程序中是很牛X,不過(guò)有不同系統(tǒng)交互時(shí),會(huì)存在數(shù)據(jù)不一致。不同系統(tǒng)或者編程語(yǔ)言會(huì)把同樣結(jié)構(gòu)轉(zhuǎn)為不同的byte流,這種情況下,數(shù)據(jù)傳輸交互就會(huì)失去一致性。而且我們的系統(tǒng)使用C語(yǔ)言,java作為客戶端,而java是沒(méi)有結(jié)構(gòu)體的,只能把對(duì)象的成員根據(jù)系統(tǒng)大小自拼接,c語(yǔ)言老手建議我在java端對(duì)C系統(tǒng)做適配,在java端做一個(gè)類似C結(jié)構(gòu)對(duì)齊的操作,這是一個(gè)很復(fù)雜的工程,C語(yǔ)言端是二字節(jié)對(duì)齊還是四字節(jié)對(duì)齊不要猜測(cè),要針對(duì)不同的C設(shè)備做適配又是不一件不可能的事。
以上就是C語(yǔ)言網(wǎng)絡(luò)編程和跨平臺(tái)代碼安全性的示例分析,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前題目:C語(yǔ)言網(wǎng)絡(luò)編程和跨平臺(tái)代碼安全性的示例分析-創(chuàng)新互聯(lián)
鏈接URL:http://www.rwnh.cn/article48/dsohhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、外貿(mào)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣、網(wǎng)站內(nèi)鏈、微信公眾號(hào)、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容