本文目錄一覽:
golang私有倉庫依賴配置
golang私有倉庫依賴配置
版本要求:go 1.14+
go mod 配置:
go env -w GOPRIVATE=”gitlab.xxx.com” //配置私有倉庫域名 :重要
go env -w GONOPROXY=”gitlab.xxx.com” //此配置下的域名默認不走代理
go env -w GONOSUMDB=”gitlab.xxx.com” //此配置下的域名默認不進行gosumdb校驗
go env -w GOINSECURE=”gitlab.xxx.com” //此配置下的域名默認採用http協議 。有些公司的私有倉庫採用http協議,而go mod默認採用 https,請根據實際情況進行配置:重要
賬戶及密碼:
因私有倉庫一般都需要進行登錄,所以可以通過隱藏文件進行用戶名及密碼配置。
文件路徑:~/.netrc //默認Linux系統,
文件內容:
machine 域名 //gitlab.xxx.com
login 賬號
password 密碼
Golang 綁定mac和ip地址,限制服務器
實際業務:go 二進制文件在私有化部署中,需要對客戶的服務器mac和ip進行綁定,系統只能運行在綁定的服務器上。把mac和ip地址配置到config中。
運行效果:系統可正常編譯,正常訪問,在用戶Auth接口進行核對。
//檢驗Mac和內網IP,測試環境不做校驗
func (c *CommonBase)CheckMacAndIp()error {
ipCfg :=g.Cfg().GetString(“machine.Ipaddr”)
macCfg :=g.Cfg().GetString(“machine.Macip”)
if ipCfg ==”127.0.0.1″ {
return nil
}
macArray,_ :=gipv4.GetMacArray()
if len(macArray) ==0 {
return gerror.New(“mac地址獲取失敗”)
}
if garray.NewStrArrayFrom(macArray).Contains(macCfg) ==false {
return gerror.New(“示授權的應用MAC,請聯繫”)
}
ipArray,_ :=gipv4.GetIpArray()
ipIntranetArray,_ :=gipv4.GetIntranetIpArray()
if len(ipArray) ==0 len(ipIntranetArray) ==0 {
return gerror.New(“ip地址獲取失敗”)
}
if garray.NewStrArrayFrom(ipArray).Merge(ipIntranetArray).Contains(ipCfg) ==false {
return gerror.New(“示授權的應用IP,請聯繫”)
}
return nil
}
項目使用GoFrame框架1.6。考慮到客戶可能會對內存數據做分析破解,可以把mac和ip地址做AES加密。
Golang 橢圓加密算法實現
橢圓曲線密碼學(英語:Elliptic Curve Cryptography,縮寫:ECC)是一種基於橢圓曲線數學的公開密鑰加密算法。橢圓曲線在密碼學中的使用是在1985年由Neal Koblitz和Victor Miller分別獨立提出的。
ECC的主要優勢是在某些情況下它比其他的算法(比如RSA加密算法)使用更小的密鑰並提供相當的或更高等級的安全。ECC的另一個優勢是可以定義群之間的雙線性映射,基於Weil對或是Tate對;雙線性映射已經在密碼學中發現了大量的應用,例如基於身份的加密。
不過一個缺點是加密和解密操作的實現比其他機制花費的時間長。
golang中crypto/hmac包
hmac包實現了U.S.Federal Infomation Processing Standards Publication 198規定的HMAC(加密哈希信息認證碼)。
HMAC是使用key標記信息的加密hash。接收者使用相同的key逆運算來認證hash。
出於安全目的,接收者應使用Equal函數比較認證碼:
這個包一共提供了兩個對外公開的函數:
func Equal(mac1, mac2 []byte) bool
比較兩個MAC是否相同,而不會泄露對比時間信息。(以規避時間側信道攻擊;指通過計算比較時花費的時間的長短來獲取密碼的信息,用於密碼破解)
func New(h func() hash.Hash, key []byte) hash.Hash
New函數返回一個採用hash.Hash作為底層hash接口、key作為密鑰的HMAC算法的hash接口。
原創文章,作者:URUC,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133628.html