go語言程式設計 要點總結(六)安全程式設計

2021-10-07 04:19:19 字數 742 閱讀 7943

單秘鑰加密,整個系統由需要加密的明文,加密演算法和秘鑰工程。常見的有des、aes、rc4等

雙秘鑰加密,整個系統由需要加密的銘文,加密演算法,秘鑰和公鑰。公鑰和秘鑰都可以用來加密。常見的有rsa等

不可解密,雜湊演算法,md5和sha-1等

指用於標記數字檔案擁有者、創造者、分發者身份的字串。擁有標記檔案身份、分發的不可抵賴性等作用,

目前常用的數字簽名採用了非對稱加密。

全稱公鑰基礎設施,使用非堆成加密理論,提供數字簽名、加密、數字證書等服務的體系,一般包括權威認證機構ca、數字證書庫、秘鑰備份及恢復系統、證書作廢系統、應用介面api等

包crypto/sha1 crypto/md5

https是基於ssl(secure sockets layer)協議。ssl是網景公司開發位於tcp與http之間的透明安全協議,通過ssl,可以把http包資料以非對稱加密的形式往返於瀏覽器和站點之間,避免被第三方非法獲取。

加密通訊流程:

瀏覽器輸入https協議**

伺服器向瀏覽器返回證書,

瀏覽器檢車證書合法性

瀏覽器使用證書中的公鑰加密乙個隨機堆成秘鑰,並將加密後的秘鑰和使用秘鑰加密後的請求url一起傳送到伺服器

伺服器用私鑰解密隨機堆成秘鑰,並用獲取的秘鑰解密加密的請求url

伺服器把使用者請求的網頁用秘鑰加密,並返回給使用者

瀏覽器用秘鑰解密伺服器發來的資料,最終顯示

上述過程依賴ssl/tls層實現。工程更複雜一些,基本流程是一致的

最近總結的安全程式設計注意要點

一 空指標問題 1 指標在使用前沒有做為空判斷,導致程式crash 2 指標在new之後沒有判斷是否new成功 3 類成員指標沒有初始化,卻在析構函式中判斷是否為空並刪除 二 記憶體越界問題 記憶體越界導致的問題往往比空指標來得更嚴重,因為有很高的機率可能導致宕機。以下是我們採取的解決方案 wspr...

go語言學習(六) 併發程式設計

併發程式設計這塊斷斷續續看了挺久的,感覺還是有地方沒有理解。有時間還是要找找正式的 看一看,不然不知道怎麼用啊。有些地方不清楚該怎麼用,所以下面寫的有些亂,再有新的理解再進行補充。gostudy0228 project main.go go語言學習 併發程式設計 go語言中支援輕量級執行緒gorou...

Go 語言程式設計

課程名稱 go 語言程式設計 課程時間 2014年7月30日 週三 20 50 22 00 課程安排 20 50 21 00 通過郵件位址登入網路課堂 21 00 22 00 主題演講 徐立 與qa ps 課程諮詢 入qq群 csdn技術交流 群號是303806405 課程名稱 go 語言程式設計 ...