您的位置:

golang配置中心加密,golang 配置中心

本文目录一览:

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接口。