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

原创文章,作者:URUC,如若转载,请注明出处:https://www.506064.com/n/133628.html

(0)
URUCURUC
上一篇 2024-10-04
下一篇 2024-10-04

相关推荐

  • c++advance的多方面详述

    一、advance 在C++中,advance意味着移动一个迭代器的指针指向一个新位置,在指针移动时需要注意不要超出迭代器的范围。 // 示例代码 std::vector<i…

    编程 2024-10-03
  • Java递归

    Java递归是一个经典的问题,它是一种通过函数重复调用自身的方式,在编程中实现循环操作的一种重要方式。 一、递归的基本概念 递归,就是一个函数通过调用自身来解决问题的过程。在递归运…

    编程 2024-10-04
  • sudomake:一个全能编程开发工程师的利器

    一、sudomake简介 sudomake是一个在命令行环境下运行的软件,它可以使开发人员更加简便地进行代码编译、安装和打包,减轻工作量,提高开发效率。sudomake本质上是一个…

    编程 2024-10-04
  • 会议酒店布置标准,酒店会议会场布置

    本文目录一览: 1、酒店设计规范 2、宴会厅设计标准规范有哪些 3、酒店会议厅空间场所特征 4、会场布置的基本要求,会议会场布置的基本要求 5、急求四星酒店中型会议室的配制标准 酒…

    编程 2024-10-04
  • dbeaver导出表结构和数据

    一、导出表结构 1、在dbeaver中选择要导出结构的表 2、右键点击该表,选择“导出” 3、选择“数据定义(DDL)”选项卡 4、选择要导出的对象,比如表、索引、触发器等 5、点…

    编程 2024-10-03
  • javaweb开发,javaweb开发流程

    本文目录一览: 1、javaweb开发和web前端开发有什么区别 2、web前端开发和Java Web有什么区别 3、从零开始学java web开发需要多长时间? 4、java,w…

    编程 2024-10-09
  • Python 中数组旋转的不同方法

    在本教程中,我们将学习如何使用 Python 程序旋转数组。我们将写一个旋转函数(arry[],E,K),它将用于将大小为 K = 8 的 arry[]旋转 E = 4 个元素。 …

    编程 2024-10-03
  • 如何获取php方法的调用链(php获取url内容)

    本文目录一览: 1、thinkphp怎么查看方法调用 2、php如何通过url调用php文件中的方法 3、PHP可否调用动态链接库 4、php如何获取调用页面的来源地址 5、php…

    编程 2024-10-04
  • 动网php插件开发lamp(php 插件式开发)

    本文目录一览: 1、LAMP代表什么,阐述在开发PHP系统中LAMP的作用 2、我本来是用wamp来学php开发的,现在改成lamp需要做哪些事 3、做PHP开发一般都用什么软件?…

    编程 2024-10-03
  • java输出图片,java怎么输出图片

    本文目录一览: 1、可否在java的console中输出图片? 2、请问下java中导出图片怎么做? 3、JAVA如何直接在console控制台上用IO流输出图片?急求! 4、怎样…

    编程 2024-10-04

发表回复

登录后才能评论