首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Go 语言怎么使用对称加密?

通过对称加密进行通信的实体必须共享该密钥,以便可以在解密过程中使用它。这种加密方法与非对称加密不同,非对称加密使用一对密钥(一个公钥和一个私钥)来加密和解密数据。...本文我们主要介绍 Golang 中怎么使用 AES 算法的对称密钥加密。...,更推荐大家使用 CBC,本文我们主要介绍使用最多的 CBC 分组模式。...04 总结 本文我们介绍了对称密钥加密的概念,并简单介绍了 AES 算法,最终我们还提供了 Golang 怎么使用 AES 算法的 CBC 分组模式实现对称密钥加密的示例代码,感兴趣的读者朋友,可以自行编写其它分组模式的代码...本文重点是介绍怎么使用 Go 语言实现对称密钥加密,代码占用篇幅比较多,关于 AES 算法的分组模式和填充模式的详细介绍,感兴趣的读者朋友们可以阅读参考资料给出的链接地址。

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Golang 语言怎么使用 panic 函数?

02 panic 触发方式和引发的后果 Golang 语言是静态强类型语言,在编译时,大多数问题就会被发现。但是一些会触发 panic 的问题只能在运行时才会被发现。...那么,我们应该怎么处理 panic 呢? 通常的做法是使用 defer 和 recover 捕获 panic,将 panic 错误写入日志文件,将程序恢复正常执行。...因为 panic 导致的后果非常严重,会导致程序崩溃,所以我们在处理一些不会影响程序正确运行的错误时,尽量使用 error 处理错误。 推荐阅读: Golang 语言怎么处理错误?...Go 语言学习之错误处理 Go语言学习之 panic 和 recover Golang 语言的值验证库 Validator 怎么使用?...Go team 开源项目 Go Cloud 使用的依赖注入工具 Wire 怎么使用? 参考资料: https://blog.golang.org/defer-panic-and-recover ?

8K10

Go 语言怎么使用依赖注入?

01 介绍 在 Go 语言项目开发中,我们处理组件层级之间的依赖关系时,通常我们会先在依赖层级的代码中实例化被依赖层级,然后调用它的方法,即依赖方需要主动获取被依赖方。...本文我们介绍 Go 语言怎么使用依赖注入。 02 Go 语言使用依赖注入 在 Go 语言中,怎么使用依赖注入呢?我准备以 clean arch 架构的代码讲解。...推荐读者朋友们先阅读我之前写的一遍文章 「Go 语言整洁架构实践」。...大叔的一篇关于整洁架构的文章 The Clean Architecture,我们分 4 个层级: Models Repository Usecase Delivery 限于篇幅,本文主要介绍在 Go 语言使用构造函数的方式实现依赖注入...所以,我们使用 Usecase 层的构造函数 NewTodoListUsecase 创建 Usecase 对象时,需要先使用 Repository 层的构造函数 NewMysqlTodoListRepository

7710

Golang 语言中的 defer 怎么使用

欢迎大家点击上方蓝色文字「Golang 语言开发栈」关注公众号。 设为星标,第一时间接收推送文章。 文末扫码,一起学 Golang 语言。...01 介绍 在 Golang 语言中,我们可以在函数(自定义和部分内置)或方法中使用 defer 关键字注册延迟调用(一个或多个),多个延迟调用的执行顺序是先进后出(FILO)。...语言官方也在 golang 1.13 和 golang 1.14 中优化了 defer 的性能。...所以,我建议大家尽量使用 defer。 还有一点需要注意的是,我们不要使用 defer 调用有返回值的自定义函数或方法,返回值会丢失,可能会给应用程序带来意想不到的错误。...通常我们会在 Golang 语言开发中使用 defer 防止忘记释放资源(关闭文件或解锁)和捕获 panic(同一 goroutine 中) 防止应用程序崩溃退出。

46010

Go 语言怎么使用 zap 日志库?

01 介绍 我们在之前的文章中介绍过标准库 log 包的使用方式,它虽然使用方便,但是它支持的功能比较简单。...02 使用 Gin 构建一个 Web 应用 本文重点不是介绍 gin 框架的使用方式,所以我们仅使用 gin 框架构建一个简单的 Web 应用,代码如下: func main() { r := gin.Default...04 zap 日志库使用 lumberjack 库进行日志切割 Zap 日志库也不支持日志切割的功能,我们可以使用 lumberjack 日志切割库进行日志切割,关于 lumberjack 库的使用方式...推荐阅读: Go 1.18 新增三大功能之一“模糊测试”使用方式 Go 语言怎么解决编译器错误“err is shadowed during return”?...Golang 语言的标准库 log 包怎么使用? Golang 语言三方库 lumberjack 日志切割组件怎么使用

19420

Go 语言怎么使用变长参数函数?

01 介绍 Go 语言中函数的最后一个参数可以是变长参数,细心的读者朋友们可能已经发现,在 Go 语言标准库 fmt包中就有使用变长参数函数,比如 Println 和 Printf。...我们在使用 Go 语言开发应用程序时,也可以在合适的场景使用变长参数函数,使我们的代码更优雅。 02 变长参数 顾名思义,变长参数是指参数的数量不固定,可以是 0 个,1 个或多个。...05 总结 本文我们主要介绍在 Go 语言怎么使用变长参数函数,先是介绍变长参数和变长参数函数的相关知识,然后列举了一个简单示例,通过示例代码,加深读者朋友们的理解。...感兴趣的读者朋友们,不妨检查一下自己的项目中是否也有适合使用变长参数函数的场景,并尝试重构一下相关代码。 推荐阅读: Go 语言怎么使用对称加密?...Golang 语言的多种变量声明方式和使用场景 Golang 语言 vendor 在 GOPATH 和 Modules 中的区别 Golang 语言怎么使用 panic 函数?

86430

Golang 语言怎么使用 gomail 库发送邮件?

Gomail 只能使用 SMTP 服务器发送电子邮件。但是该 API 灵活,可以轻松实现使用本地 Postfix,API 等发送电子邮件的其他方法。...它使用 gopkg.in 进行了版本控制,因此保证每个版本都不会存在向后不兼容的更改。它需要 Go 1.2 或更高版本。对于 Go 1.5,不使用外部依赖项。...02 gomail 包含的特性 附件 嵌入图片 HTML 和文本模板 特殊字符的自动编码 SSL 和 TLS 使用相同的 SMTP 连接发送多封电子邮件 03 gomail 安装 使用 go get...安装: go get gopkg.in/gomail.v2 04 gomail 使用 准备邮箱服务: 如果想要使用 gomail 开发发送邮件的功能,需要准备邮箱服务,除了自建SMTP 服务之外...06 总结 本文主要是给大家介绍了 Golang 语言中一个非常好用的发送邮件的三方库 gomail,不仅介绍了 gomail 的特性和安装使用方法,还列举了一个常见问题和解决方法。

3.2K20

Golang 语言标准库 bytes 包怎么使用

01 介绍 Golang 语言中内置了两种字符类型,分别是 byte 的字节类类型,和 rune 的字符类类型。...本文主要讲解 bytes(byte slice)包的使用方法,并不会涉及比较 string 和 []byte 相关的内容,比如二者的底层实现、区别和相互转换等。...创建 Reader func NewReader(b []byte) *Reader 使用 NewReader 函数可以创建一个读取 b 的 Reader。...05 总结 本文介绍了 Golang 语言标准库的 bytes 包的函数和两个结构,Buffer 和 Reader,以及它们各自的方法。...通过阅读本文,读者可以了解 bytes 包的使用方法和部分底层实现。 bytes 包提供的函数不止文中介绍的这些,感兴趣的读者,建议阅读官方文档了解文中未被提及的函数。

1.5K30

Golang 语言的值验证库 Validator 怎么使用

01 介绍 Validator 是基于 tag(标记)实现结构体和单个字段的值验证库,它包含以下功能: 使用验证 tag(标记)或自定义验证器进行跨字段和跨结构体验证。...提取自定义的字段名称,例如,可以指定在验证时提取 JSON 名称,并在生成的 FieldError 中使用该名称。 可自定义 i18n 错误消息。 Web 框架 gin 的默认验证器。...安装: 使用 go get: go get github.com/go-playground/validator/v10 然后将 Validator 包导入到代码中: import "github.com.../go-playground/validator/v10" 02 变量验证 Var 方法使用 tag(标记)验证方式验证单个变量。...最大值 min 最小值 oneof 其中一个 required 必需的 unique 唯一的 isDefault 默认值 len 长度 email 邮箱格式 05 总结 本文简单介绍了在 Go 语言中比较流行的值验证库

3K40

Go 语言怎么使用类型转换和类型断言?

01 介绍 Go 语言是强类型编程语言,一些使用弱类型编程语言的读者朋友们在初学 Go 语言时,多多少少都会不太适应 Go 语言的类型。...本文我们介绍 Go 语言的类型转换和类型断言。 02 类型转换 我们在项目开发时,可能会遇到一些需要类型转换的场景,比如我们使用 Go 语言开发 Api 接口。...03 类型断言 我们在项目开发时,可能想要定义参数的类型为通用类型,比如我们使用 Go 语言开发 Api 接口。...我们想要尽量适配客户端(调用方)传参使用不同类型,比如调用方是使用弱类型编程语言的场景。...04 总结 本文我们介绍 Go 语言中让之前一直使用弱类型编程语言的读者朋友们迷惑的类型转换和类型断言。 读完本文,大家至少可以区分类型转换和类型断言的区别,和了解各自的使用场景。

20630

HTTP使用BASIC认证的原理及实现方法

BASIC认证概述 在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份证的方法,当一个客户端向HTTP服务 器进行数据请求时,如果客户端未被认证...BASIC认证的过程 1....服务器向客户端发送验证请求代码401,服务器返回的数据大抵如下: HTTP/1.0 401 Unauthorised Server: SokEvo/1.0 WWW-Authenticate: Basic...加密方式加密,并将密文放入前一条请求信息中,则客户端发送的第一条请求信息则变成如下内容: Get /index.html HTTP/1.0 Host:www.google.com Authorization: Basic...BASIC认证的缺点 HTTP基本认证的目标是提供简单的用户验证功能,其认证过程简单明了,适合于对安全性要求不高的系统或设备中,如大家所用路由器的配置页面的认证,几乎 都采取了这种方式。

1.9K30
领券