Go
满天星河
这个作者很懒,什么都没留下…
展开
-
AES加密相关
AES是一种对称加密算法,即用同一把密钥进行加密与解密。AES加密有以下几个参数需要注意:1.keyAES要求密钥具有16byte、24byte或者32byte,位数越高,加密强度越大,加密轮数依次为10、12、14轮。以128位密钥为例,密钥首先扩展为44个字(32位),前4个字与明文进行一次异或操作。后面40个字分成10组,分别在10轮加密中进行数据异或操作。2.IV初始向量,其作用是对输入明文进行,加密解密需要同样的IV。IV也需要通过随机函数产生以保证安全。3.padding,填充模式。原创 2020-07-12 11:37:34 · 1416 阅读 · 0 评论 -
升级go 1.13 遇到的坑
最近将go的版本由1.12升级到了1.13,遇到了两个问题,在一并此记录。一、升级后在goland中debug时,提示Version of Delve is too old for this version of Go,解决方法先获取最新的go dlvgo get -v github.com/derekparker/delve/cmd/dlv然后在goland help -> Edi...原创 2020-04-19 17:09:53 · 2106 阅读 · 0 评论 -
golang sync.Pool学习
sync.Pool是一个对象池,其目的复用对象结构,当需要新的对象时不用重新构造,而直播去对象池中取出已有的对象。但需要记住的是pool中的对象随时可能会被删除而不发出通知,pool对象的生存周期是两次gc之间。使用方法package mainimport ( "bytes" "sync")var bp sync.Poolfunc init() { bp.New = fun...原创 2020-02-23 16:52:56 · 203 阅读 · 0 评论 -
GO环境配置中的几个目录
GOROOT是指GO的安装路径GOPATH是指GO项目的工作目录原创 2019-06-12 15:26:39 · 537 阅读 · 0 评论 -
win10下配置VSCode+GO开发环境
安装Golang语言环境,链接:https://golang.google.cn/dl/安装VSCode,链接:https://code.visualstudio.com/VSCode中搜索Go插件,如下图:安装Go Tools相关依赖包(链接:https://github.com/Microsoft/vscode-go/wiki/Go-tools-that-the-Go-...原创 2019-07-20 14:23:51 · 3031 阅读 · 0 评论 -
Go单元测试
对包含网络请求和响应的函数进行单元测试需要我们模拟客户端请求和服务端返回。以一个登录模块为例,main.go文件如下:var eg *xorm.EngineGroupfunc OpenDB() { conns := []string{ "root:xxxx@tcp(192.168.64.166:33066)/testdb", "root:xxxx@tcp(192.168.64.1...原创 2019-08-14 19:08:28 · 214 阅读 · 0 评论 -
Go profile记录
Go中使用profile有两种方式:(1)使用离线的profile文件(import “runtime/pprof”),要保存CPU的profile数据,可使用以下代码:f, err := os.Create("cpu_profile")...pprof.StartCPUProfile(f)defer pprof.StopCPUProfile()另一个是内存的profile数据: ...原创 2019-08-29 10:00:32 · 1083 阅读 · 0 评论 -
Go Http包学习之一
func handleWeb(w http.ResponseWriter, r *http.Request){ fmt.Fprintf(w, "Hello world!")}func main(){ http.HandleFunc("/", handleWeb) http.ListenAndServe(":8001", nil)}原创 2019-10-04 11:29:09 · 223 阅读 · 0 评论