易水风萧个人学习

风萧萧兮易水寒,壮士一去兮不复还

基于openssl的证书生成

其实你不知道, 你给我糖的时候,别人给我蛋糕,只是我没要,后来我发现,你也有蛋糕,但你没给我

证书生成流程及密钥关联性生成根证书(自签名证书)私钥生成openssl genrsa -out CA-A.key 2048 生成根证书私钥 CA-A.key(2048位RSA密钥),仅用于签发下级证书‌‌ 公钥与证书生成openssl req -x509 -new -key CA-A.key -out CA-A.crt -days 3650 通过私钥生成自签名根证书CA-A.crt,内含公钥......

在基础镜像上构建支持 Maven 和 Docker 的镜像

你抬头看烟花的神情,比烟花还寂寞

在 eclipse-temurin:17-jre 基础上构建支持 Maven 和 Docker 的镜像下面是一个详细的步骤指南,用于在 eclipse-temurin:17-jre 基础镜像上构建一个支持 Maven 和 Docker 的镜像,并处理相关的权限和配置问题。 Dockerfile 内容# 使用 eclipse-temurin:17-jre 作为基础镜像FROM eclipse-......

ASN.1入门学习笔记

相遇总是猝不及防,而离别多是蓄谋已久,总有一些人会慢慢淡出你的生活,我们要学会接受而不是怀念

一 标签编码规则详解标签编码公式 标签的最终编码值通过以下公式计算:Tag = Tag Class + Primitive/Constructed + Tag Number在 ASN.1 中,标签(Tag) 的编码规则是基于 BER(Basic Encoding Rules) 或 DER(Distinguished Encoding Rules) 的。标签的编码由以下三部分组成: Tag ......

Go语言中消息总线和sync.WaitGroup的简单使用

世间万物都别等失去了,再来睹物思人

golang中消息总线EventBus 是 Go 语言中轻量级的事件总线库,核心用于实现组件间的解耦通信(发布 - 订阅模式),支持普通事件、异步事件和定时事件。 首先通过 go get 安装依赖,在终端执行以下命令: go get github.com/asaskevich/EventBus 核心使用步骤初始化 EventBus创建一个事件总线实例,有两种常用方式: 默认全局总线:直接使......

Go语言RWMutex及sync包其他函数的简单使用

生命里总有那么个人,惊艳了时光,让你念念不忘;哭红了眼眶,却还笑着原谅

sync.RWMutex(读写互斥锁)sync.RWMutex 是 Go 语言标准库 sync 包提供的一种读写锁。它是一种特殊的互斥锁,允许多个读操作并行进行,但写操作是完全独占的。 这意味着: 可以多个 Goroutine 同时持有「读锁」。 同时只能有一个 Goroutine 持有「写锁」。 写锁和读锁是互斥的。也就是说,当一个 Goroutine 持有写锁时,其他所有 Gorout......

Go 语言枚举实现全面指南:方法与最佳实践

曾说过的永远已经停在了当时的那个瞬间,不再向前

基础枚举实现方式使用 iota 实现基本枚举(最常用)package mainimport "fmt"// 1. 基础 iota 枚举const ( Sunday = iota // 0 Monday // 1 Tuesday // 2 Wednesday // 3 Thursday // 4 Frid......

Go 语言通道的全面指南:使用场景与最佳实践

想雨的时候,就是心事和忧伤积攒得很沉很重的时候,心情像枯渴的禾苗盼着雨的到来

通道遍历的多种方式基本 for-range 遍历func basicRange() { ch := make(chan int, 5) // 生产数据 go func() { for i := 1; i <= 5; i++ { ch <- i time.Sleep(2......

Go 语言错误处理全面指南

其实你心里早就有了答案,你就是不想承认,你就是不甘心爱了那么久的人,连个像样的交代都给不了你

基础错误处理方法返回错误值(最常用)func ReadFile(filename string) ([]byte, error) { file, err := os.Open(filename) if err != nil { return nil, err } defer file.Close() data,......

Go 语言中 defer 的使用指南

世间万物都别等失去了,再来睹物思人

基本特性与语法执行顺序(LIFO)多个defer按后进先出(LIFO)顺序执行: defer fmt.Println("A") // 最后执行defer fmt.Println("B") // 第二执行defer fmt.Println("C") // 最先执行/......

Go 语言中 context 包的深度解析与应用场景

所有的期待和失望都是因为你把自己看得太重要了

Context 基础概念Context 的核心作用 取消传播:在调用链中传递取消信号 超时控制:设置操作的截止时间 值传递:在调用链中安全传递请求范围数据 截止时间:设置操作的绝对过期时间点 创建 Context 的四种方式// 1. 创建根Contextctx := context.Background()// 2. 创建TODO占位Contextctx = context.TODO()......