![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
玩哈哈527
简介有字不简洁,心轻无恙难心晴。
展开
-
go iris框架实现多服务Demo:通过(监听8083端口的)服务1中的接口启动(监听8084端口的)服务2
go iris框架实现多服务Demo:通过(监听8083端口的)服务1中的接口启动(监听8084端口的)服务2前言常见情况下,在一个应用程序中会监听不同端口的多个服务,比如:服务1实现其相应接口功能,服务2实现其相应接口功能。此demo示例,目的是:通过在服务1中的某个接口来启动服务2。一、DEMO示例1.引入库代码如下(示例):package mainimport ( "context" "fmt" "log" "time" "github.com/kataras原创 2022-01-27 10:52:33 · 669 阅读 · 0 评论 -
golang实现RSA加密解密算法
golang实现RSA加密解密算法前言一、生成密钥对(公钥私钥)二、根据公钥加密二、根据私钥解密总结前言直接看正文吧!一、生成密钥对(公钥私钥)代码如下(示例): //生成私钥 privateKey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { panic(err) } //生成公钥 publicKey := privateKey.PublicKey二、根据公钥加密代码如下(示例): enc..原创 2021-10-27 17:36:36 · 5548 阅读 · 2 评论 -
golang实现一个带Web界面的五险一金计算器
package mainimport ( "fmt" "log" "net/http" "strconv")// 向客户端写入这些数据,以便客户端可以填写文本并提交var indexHTML = `<html><head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>测试</title></head>&原创 2021-10-27 17:01:14 · 461 阅读 · 2 评论 -
golang实现正则匹配:密码包含至少一位数字,字母和特殊字符,且长度8-16
golang正则匹配密码包含至少一位数字,字母和特殊字符,且长度8-16前言一、安装包go get github.com/dlclark/regexp2二、使用三、解释前言由于golang不支持预查之类的正则匹配规则,regex包不支持?=之类的格式,复杂的正则匹配难以实现,可以使用开源包regex2一、安装包go get github.com/dlclark/regexp2二、使用代码如下(示例):func matchStr(str string) string { expr :..原创 2021-10-26 17:36:54 · 3782 阅读 · 2 评论 -
golang实现MD5,SHA256,bcrypt加密
golang实现MD5,SHA256,bcrypt加密前言一、MD5算法 目前已不够安全,可通过彩虹表很容易破解二、SHA256算法 相对MD5更加安全,当然SHA512长度更长更加安全,但性能需求更大三、bcrypt算法 破解的成本更高,更加安全,bcrypt算法包含了随机加盐,也更加方便前言 加密算法肯定可以解密。MD5,SHA256,bcrypt算法都是不可逆不可解密的,所以不是加密算法,例如2+3得到5,但是5不知道是否由2+3得到,也可能1+4,0+5,所以不可逆。经常混淆的叫加密算法,但实原创 2021-10-26 17:05:45 · 1169 阅读 · 0 评论 -
记录根据Dockerfile文件创建镜像
记录根据Dockerfile文件创建镜像其中Dockerfile文件内容如下:若没有.mod文件,打开cmd,cd到当前目录下,再输入命令go mod init,会自动创建.mod 文件再运行构建镜像的命令docker build -t practice .原创 2021-08-09 17:42:18 · 78 阅读 · 0 评论 -
go语言:在函数间传递切片
package mainimport "fmt"//在函数间传递切片func main() { // 分配包含 10个整型值的切片 slice:= make([]int, 10) // 将 slice 传递到函数 foo var slice1 []int slice1= foo(slice) // 函数 foo 接收一个整型切片,并返回这个切片 fmt.Print(slice1)}func foo(slice []int) []int { slice=append(slic原创 2021-07-29 15:55:38 · 432 阅读 · 0 评论 -
go语言切片操作
package mainimport ( "fmt")func main() { //创建切片,使用切片slice:=make([]string,5)//长度5,默认容量也是5//slice1:=make([]string,5,3)//长度5大于容量3,错误slice2:=make([]int,3,5)//创建整型切片,长度3容量5slice3:=[]string{"red","blue","yellow"}//初始化slice4:=[]int{3,4,5,6}//初始化整型切片原创 2021-07-29 15:52:18 · 108 阅读 · 0 评论 -
go语言映射操作
package mainimport "fmt"//创建和使用映射func main() { // 创建一个映射,键的类型是 string,值的类型是 int dict:=make(map[string]int) fmt.Println(dict) // 创建一个映射,键和值的类型都是 string // 使用两个键值对初始化映射 dict1:=map[string]string {"apple":"good","orange":"bad"} fmt.Println(dict1)原创 2021-07-29 15:47:11 · 183 阅读 · 0 评论 -
go语言数组操作
package mainimport "fmt"func main() {//声明和使用数组var arr1 [5]string//声明包含5个元素的字符串数组arr2:= [5]string{"a","b","c","d","e"}//初始化包含5个元素的字符串数组arr1=arr2//数组2复制给数组1 fmt.Println(arr1) fmt.Println(arr2)//以上打印结果//[a b c d e]//[a b c d e]var arr3 [3]*string.原创 2021-07-29 15:38:19 · 517 阅读 · 0 评论