原创 golang(Go語言)內存管理(一):系統內存管理

介紹 要搞明白 Go 語言的內存管理,就必須先理解操作系統以及機器硬件是如何管理內存的。因爲 Go 語言的內部機制是建立在這個基礎之上的,它的設計,本質上就是儘可能的會發揮操作系統層面的優勢,而避開導致低效情況。 操作系統內存管理 其實現

原创 golang(Go語言)調度(一): 系統調度

調度相關的一系列文章主要參考 Scheduling In Go : Part I - OS Scheduler 翻譯來的。 因爲在學習的過程中偶然發現,感覺總結得蠻好的,就不造輪子了,乾脆直接翻譯過來作爲自己的學習筆記了,英文好的建議直接

原创 Go語言(golang)常見問題總結(一)

1. 在go語言中,new和make的區別? new 的作用是初始化一個指向類型的指針(*T) new函數是內建函數,函數定義:func new(Type) *Type 使用new函數來分配空間。傳遞給new 函數的是一個類型,不是一個值

原创 Go語言(golang)常見問題總結(二)

1.main包的唯一性 傳統語言中對主入口的要求是main函數,如c++/java等,只需要保證這點即可,但是在go中還需要保證main包的唯一性。 如下,在一個main包定義如下函數 package main import "fmt

原创 圖說密碼學——數字簽名

1. 鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰。 2. 鮑勃把公鑰送給他的朋友們----帕蒂、道格、蘇珊----每人一把。 3. 蘇珊要給鮑勃寫一封保密的信。她寫完後用鮑勃的公鑰加密,就可以達到保密的效果。 4. 鮑勃收信後,用私

原创 Go語言(Golang)密碼加密存儲(數據庫中密碼存儲)

很多系統都是將密碼進行一次 MD5 或 SHA1 Hash後存入數據庫中。這樣的密碼抵擋不住字典攻擊。所謂字典攻擊,就是將常用密碼進行Hash後做成一個字典,破解的時候,只需要查字典就能知道對應的明文密碼。 爲了抵禦字典攻擊,推薦的做法是

原创 jwt-go(Json web token)之基本概念

Json web token (JWT), 是爲了在網絡應用環境間傳遞聲明而執行的一種基於JSON的開放標準((RFC 7519).該token被設計爲緊湊且安全的,特別適用於分佈式站點的單點登錄(SSO)場景。JWT的聲明一般被用來在

原创 jwt-go(Json web token)之Hash方法

核心代碼如下: package main import ( "github.com/dgrijalva/jwt-go" //快速生成token "temp/Gin/gin-go/model" "time" ) var jwtK

原创 jwt-go(Json web token)之ecdsa(橢圓曲線)方法

代碼示例: package main import ( "crypto/ecdsa" "crypto/elliptic" "crypto/rand" "errors" "fmt" "github.com/dgrijalva

原创 golang(Go語言)內存管理(三):逃逸分析

結合前期文章一起參閱:https://blog.csdn.net/weixin_42117918/article/details/90409744 介紹 Go 語言較之 C 語言一個很大的優勢就是自帶 GC 功能,可 GC 並不是沒有代價

原创 golang(Go語言)內存管理(二):Go 內存管理

介紹 瞭解操作系統對內存的管理機制後,現在可以去看下 Go 語言是如何利用底層的這些特性來優化內存的。Go 的內存管理基本上參考 tcmalloc 來實現的,只是細節上根據自身的需要做了一些小的優化調整。 Go 的內存是自動管理的,我們可

原创 Golang context包的使用

Go 中的 context 包在與 API 和慢處理交互時可以派上用場,特別是在生產級的 Web 服務中。在這些場景中,您可能想要通知所有的 goroutine 停止運行並返回。在 Go 語言中 context 包允許您傳遞一個 "con

原创 Golang Gob編碼(gob包的使用)

gob是Golang包自帶的一個數據結構序列化的編碼/解碼工具。編碼使用Encoder,解碼使用Decoder。一種典型的應用場景就是RPC(remote procedure calls)。 gob和json的pack之類的方法一樣,

原创 Fabric 2.x鏈碼之綜合應用

在上一小節對Fabric 2.x鏈碼有了基本瞭解之後,本節以學生信息上鍊爲例,說明Fabric 2.x鏈碼的綜合應用。代碼如下,內容包括:學生信息上鍊、查詢學生信息(依據key)、查詢key區間的學生信息、修改學生信息、獲取歷史信息等內容

原创 Fabric 2.x鏈碼之基本使用

Fabric 2.0之後對鏈碼做了較大改進,在接下來的幾篇博客中加以說明。本節主要講解Fabric 2.x鏈碼的基本使用。基本鏈碼如下所示: package main import ( "errors"