
golang
咸甜适中
这个作者很懒,什么都没留下…
展开
-
go语言gui窗口应用之fyne框架-动态添加、删除一行控件(逐行注释)
【代码】go语言gui窗口应用之fyne框架-动态添加、删除一行控件(逐行注释)原创 2025-01-22 14:28:21 · 448 阅读 · 0 评论 -
go语言gui窗口应用之fyne框架-自定义容器实现自定义布局,更灵活的显示控件
通过上述,可以看出,要实现自定义容器,关键是自定义布局,在 fyne 中,自定义布局,只要实现fyne包下Layout接口即可,以下为Layout// 布局接口// 通过遍历[]CanvasObject,获取每个控件,设置每个控件大小和位置// 设置容器总大小(宽,高)注意:自定义容器中控件宽、高,可能受自定义容器的外部容器影响,修改控件宽、高时,可能没有效果,需要对外部容器也要做相应操作。可以通过查看fyne中container源码定义的布局,扩充自定义布局功能。原创 2025-01-16 16:54:35 · 502 阅读 · 0 评论 -
go语言并发文件备份,自动比对自动重命名(逐行注释)
【代码】go语言并发文件备份,自动比对自动重命名(逐行注释)原创 2024-12-24 17:17:42 · 363 阅读 · 0 评论 -
go语言并发读写数据队列,不停写的同时,一次最多读取指定量数据(逐行注释)
【代码】go语言并发读写数据队列,不停写的同时,一次最多读取指定量数据(逐行注释)原创 2024-12-15 21:08:42 · 288 阅读 · 0 评论 -
go语言结构体实现数据结构队列(先进先出)存储数据(逐行注释)
【代码】go语言结构体实现数据结构队列(先进先出)存储数据(逐行注释)原创 2024-12-15 20:23:47 · 355 阅读 · 0 评论 -
go语言:两协程并发交替打印数字和字母(代码逐行注释)
【代码】go语言:两协程并发交替打印数字和字母(代码逐行注释)。原创 2024-06-22 21:45:59 · 595 阅读 · 0 评论 -
go语言:数据库sql查询保存任意数量字段的数据
【代码】go语言:sql查询保存任意数量字段的数据。原创 2024-06-20 15:41:22 · 484 阅读 · 0 评论 -
2024年最新 golang语言windows下 protobuf3 安装使用(避免采坑)
下载网址:https://github.com/protocolbuffers/protobuf/releases。Any 可以表示不在 .proto 中定义任意的内置类型。原创 2024-03-25 08:56:31 · 1140 阅读 · 0 评论 -
go语言RSA加密算法(三):数字签名、验证
加密与签名的区别:加密:公钥加密,私钥解密签名:私钥签名,公钥验证数字签名过程:原文的哈希值用自己私钥签名,原文+签名给对方,对方用公钥验证签名时与原文哈希比对。加密并签名:原文用对方公钥加密,原文的哈希值用自己的私钥签名,密文+签名给对方,对方公钥验证签名和自己私钥解密原文的哈希值比对。原创 2022-12-30 09:29:44 · 989 阅读 · 0 评论 -
go语言RSA加密算法(二):加密解密过程
原文用对方公钥加密,密文给对方,对方私钥解密。1、读取公钥文件,解析出公钥对象。1、读取私钥文件,解析出公钥对象。2、使用公钥对明文进行加密。2、使用私钥对密文进行解密。加密:公钥加密,私钥解密。原创 2022-12-28 10:18:49 · 1310 阅读 · 0 评论 -
go语言RSA加密算法(一):生成密钥对
go语言生成密钥对,分别存储到公钥文件(./files/public.pem),私钥文件中(./files/private.pem)原创 2022-12-28 09:53:30 · 1311 阅读 · 0 评论 -
go语言对称加密使用(DES、3DES、AES)
golang对称加密、解密,DES、3DES、AES原创 2022-12-27 09:17:27 · 2266 阅读 · 0 评论 -
go语言各种hash哈希算法使用汇总(超详细代码)
消息摘要,包括MD4、MD5(128位)、SHA-1、ripeMD160、SHA-224、SHA-256、SHA-384、SHA-512、SHA-3(Keccak算法,512、384、256、224)一个优秀hash算法正向快速逆向困难输入敏感抗冲突(抗碰撞)用户密码加Salt(盐)后哈希保存,增加破解难度例:密码:“123”,哈希前修改为:"123aabbcc"等。原创 2022-12-18 10:12:41 · 7238 阅读 · 0 评论 -
go语言根据两个坐标(x1,y1)、(x2,x2),输出直线方程
【代码】go语言根据两个坐标(x1,y1)、(x2,x2),输出直线方程。原创 2022-12-17 19:18:56 · 204 阅读 · 0 评论 -
go语言分数约分(分子分母均为整数)
【代码】go语言分数约分(分子分母均为整数)原创 2022-12-17 19:13:47 · 272 阅读 · 0 评论 -
ubuntu20.04.4安装golang语言
1、官网下载安装包Go下载 - Go语言中文网 - Golang中文社区提供 Go 语言全部版本的安装包下载,各个平台以及源码都可以在这里下到https://studygolang.com/dl2、将下载下来的安装包解压到/usr/local下tar xf go1.18.linux-amd64.tar.gz -C /usr/local3、添加环境变量通过将Go目录的位置添加到$PATH环境变量中,系统将知道在何处可以找到Go可执行二进制文件。可以通过将以下行添加到/etc/prof..原创 2022-04-03 15:09:49 · 3577 阅读 · 0 评论 -
go语言获取文件哈希值
func gethash(path string) (hash string) { file, _ := os.Open(path) h_ob := sha256.New() _, err := io.Copy(h_ob, file) if err == nil { hash := h_ob.Sum(nil) hashvalue := hex.EncodeToString(hash) return hashvalue } else { return "哈希错误" }}..原创 2022-03-23 16:52:22 · 1780 阅读 · 0 评论 -
go语言目录下存在相同文件名时,重命名文件名
func NewName(dirname, name string) string { nameA := dirname + name // 绝对路径 + 文件名 iii := 1 for { // 文件名存在时,改名存储 if !IsFileExist(nameA) { // 文件名不存在,直接返回,请查看判断文件存在的另一个博客主题。 return nameA } else { // 文件名存在,重命名.原创 2022-12-17 16:13:25 · 631 阅读 · 0 评论 -
go语言遍历文件夹下所有文件绝对路径
func WalkDir(dir string) { filepath.Walk(dir, func(fname string, fi os.FileInfo, err error) error { if !fi.IsDir() { fmt.Println(fname) } return nil })}原创 2022-03-23 16:44:17 · 998 阅读 · 0 评论 -
go语言判断文件是否存在
func IsFileExist(path string) bool { fileInfo, err := os.Stat(path) if err != nil { //文件不存在 return false } if fileInfo.IsDir() { //是目录 return false } return true}原创 2022-03-23 16:39:31 · 885 阅读 · 0 评论 -
golang使用SQLite数据库对指定扩展名文件进行批量加密(七、完整代码)
package mainimport ( "bufio" "crypto/sha256" "database/sql" "encoding/hex" "fmt" "io" "io/ioutil" "os" "strings" "sync" "time" _ "github.com/mattn/go-sqlite3")// 加密字符串func GetNegation(strb []byte) []byte { var strsN []byte for i, b :=.原创 2022-02-15 11:20:33 · 1119 阅读 · 0 评论 -
go语言重大bug,make缓存读取数据漏洞,4096漏洞
做一个小程序,需要对文件内容分片读取,但是读取过程中发现数据读取不全,经测试多个make缓存读取文件时发现问题。一、生成测试文件(AAA.txt)// 创建一个AAA.txt文件,写入1万个AwFile, _ := os.OpenFile("AAA.txt", os.O_WRONLY|os.O_CREATE, 0666)defer wFile.Close()for i := 0; i < 10000; i++ { wFile.WriteString("A")}二、多缓存读原创 2022-02-09 15:36:36 · 1535 阅读 · 4 评论 -
golang使用SQLite数据库对指定扩展名文件进行批量加密(六、获取目录下指定扩展名文件)
package mainimport ( "fmt" "io/ioutil" "strings")// 传入扩展名列表,返回指定扩展名的文件名列表func GetFileNames(expNameList []string) []string { var fileNameList []string // 文件名列表 files, err := ioutil.ReadDir("./") // 读取目录下所有文件 i.原创 2022-01-20 11:25:22 · 335 阅读 · 0 评论 -
golang使用SQLite数据库对指定扩展名文件进行批量加密(五、大文件读写,复制功能)
ackage mainimport ( "bufio" "fmt" "io" "os")func main() { file1, err1 := os.Open("xxxxxx.mp4") // 只读方式打开文件 if err1 != nil { // 文件打开错误 fmt.Println("打开原文件错误!") } // os.O_WRONLY,写模式;os.O_CREATE,文件不存在时.原创 2022-01-20 09:53:17 · 531 阅读 · 0 评论 -
golang使用SQLite数据库对指定扩展名文件进行批量加密(四、大文件读取)
使用缓存读取大文件,详见代码。package mainimport ( "bufio" "fmt" "io" "os")func main() { file, err := os.Open("XXXXX.mp4") // 只读方式打开文件 if err != nil { // 文件打开错误 fmt.Println("打开文件错误!") } defer file.Close() // 延迟关闭文件 read := buf原创 2022-01-20 09:23:55 · 738 阅读 · 0 评论 -
golang使用SQLite数据库对指定扩展名文件进行批量加密(三、简单加密过程实现)
一、加密、解密代码:// 传入一个字节数组,加密后返回字节数组func GetNegation(strb []byte) []byte { var strsN []byte for _, b := range strb { // 循环遍历字节数组 // 将每个字节取反后加77,实现加密,再拼接为字节数组 strsN = append(strsN, ^b+77) } return strsN //返回加密后的字节数组}二、字符串加密测试: // 加密过程 str :=原创 2022-01-20 08:35:26 · 1102 阅读 · 0 评论 -
golang使用SQLite数据库对指定扩展名文件进行批量加密(二、加密过程概述)
一、批量读取指定扩展名的文件,如jpg、mp4,可以同时设置多个。遍历当前文件夹下所有文件,找出jpg、mp4的文件。(也可以设置为排除的文件扩展名。)二、以二进制方式读取文件内容。三、编写简单加密函数,用于加密。本次使用的是二进制取反后加77个字节。这样所有数据将改变。解密时用同一个函数即可。过程如下:二级制数据------------> 取反--------------->+77(二进制为01001101)加密:00110011 ------> 取反后11001100原创 2022-01-13 23:34:22 · 747 阅读 · 0 评论 -
golang使用SQLite数据库对指定扩展名文件进行批量加密(一、原理篇)
序言:目前网上的文件加密软件,大多都是付费、注册类,于是打算自己用go语言手写一个,自用的文件加密小程序。思路:图片、视频等文件都是二进制存储的数据,我们用文本编辑器打开删除部分信息后,就导致文件损坏无法打开。因此,我们可以用go语言二进制读取需要加密的文件,将文件前n个字节存储到SQLite中,将剩余的字节再存到文件中,并删除源文件,因文件部分数据缺失,就会导致无法打开。为了进一步保证安全:1、前n字节存储到SQLite数据库的时候进行下简单加密操作,比如全部按位取反后转为字符串保存。2、原创 2022-01-13 21:41:45 · 829 阅读 · 0 评论 -
解决windows10 x64位系统下连接mysql数据库驱动错误,找不到驱动(采坑解决)go语言
解决windows10 x64位系统下连接mysql数据库驱动错误,找不到驱动(采坑解决)go语言原创 2021-11-26 23:25:25 · 1597 阅读 · 1 评论 -
golang文件夹内文件复制、增量备份(目标下没有同名文件名时进行备份,同文件名时不操作,不判断内容更改)(用于增量备份相片)
golang文件夹内文件复制、增量备份(目标下没有同名文件名时进行备份,同文件名时不操作,不判断内容更改)(用于增量备份相片)原创 2021-11-26 20:31:38 · 764 阅读 · 0 评论