亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言網絡編程和跨平臺代碼安全性的示例分析

發布時間:2021-10-14 15:43:02 來源:億速云 閱讀:144 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關C語言網絡編程和跨平臺代碼安全性的示例分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

C語言語法簡潔,但內涵豐富。對一個聰明的人來說,可能幾個小時就能學會使用C語言,但可能一輩也很難成為大師。C語言處處隱藏陷阱,沒有閱讀過大量優秀代碼,沒有思考過大師專家級代碼的特別之處,沒有寫了過大量應用程序,寫的程序中往往容易不經意間隱藏地雷。一旦爆發,系統被炸的面目全非。

茲摘抄一個知名公司系統中的代碼研究

1.  移位陷阱

公司的大牛在寫一個base64編解碼程序時,使用了如下方法:

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) ] : '=');

}

這在本系統中不錯,但卻隱藏著很大的風險,系統是做為基礎的加密工具給公司各種各樣的嵌入式設備使用,這里隱藏著一個數組越界的地雷。(int)(in[0] >> 2)如果不&0x3f,在不同編繹器環境下,右移位后,左邊空拉有些是填充零,有些時填充1,有些是填充最高符號位,這樣就會導致不同系統的加密出現數據一不致性,有時會溢出。

2. 對齊陷阱

Sizeof是在C語言里經常使用的方法,有人把歸為運算符,其他他計算結構體變量的指針偏移相當方便,有很多書推薦,因為他計算基礎類型變量時能根據系統和編繹器不同自動計算調整,具有很強的自適應性和跨平臺能力,但這種自適合性在單機程序中是很牛X,不過有不同系統交互時,會存在數據不一致。不同系統或者編程語言會把同樣結構轉為不同的byte流,這種情況下,數據傳輸交互就會失去一致性。而且我們的系統使用C語言,java作為客戶端,而java是沒有結構體的,只能把對象的成員根據系統大小自拼接,c語言老手建議我在java端對C系統做適配,在java端做一個類似C結構對齊的操作,這是一個很復雜的工程,C語言端是二字節對齊還是四字節對齊不要猜測,要針對不同的C設備做適配又是不一件不可能的事。

以上就是C語言網絡編程和跨平臺代碼安全性的示例分析,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大悟县| 治县。| 上蔡县| 宽甸| 淳化县| 堆龙德庆县| 宜宾县| 昭觉县| 义乌市| 拉孜县| 抚宁县| 广德县| 天柱县| 商南县| 前郭尔| 关岭| 正定县| 泰州市| 芦溪县| 天门市| 泸溪县| 丰都县| 海口市| 沈丘县| 德清县| 和顺县| 沙坪坝区| 修武县| 淮南市| 新河县| 两当县| 沐川县| 丹阳市| 乌鲁木齐县| 德阳市| 鸡泽县| 韶关市| 井陉县| 福鼎市| 澄江县| 育儿|