-
Go 1.27 为 crypto/x509.Certificate 增加 RawSignatureAlgorithm,可读取证书签名算法的 DER AlgorithmIdentifier。本文说明如何从 PEM 证书解析 OID,区分原始字节与 SignatureAlgorithm,并处理未知算法、ASN.1 错误和证书验证边界。
-
Go 1.27 新增 crypto/mldsa,可用 MLDSA44、MLDSA65 或 MLDSA87 生成 ML-DSA 私钥。本文给出密钥生成、公钥导出、seed 恢复以及带 context 的签名验证写法,并说明参数尺寸和 FIPS 140-3 边界。
-
Go 判断 IP 是否为回环地址时,优先把文本解析为 netip.Addr,再调用 IsLoopback。本文区分 IPv4、IPv6、映射地址、未指定地址和零值 Addr 的边界。
-
用 github.com/google/uuid 处理 UUID 字符串时,外部输入应使用 Parse 并保留 error,固定可信常量才使用 MustParse,统一输出交给 String;严格 API 外形还要额外约束。
-
Go 1.27 的 bytes.CutLast 可以按最后一次分隔符拆分字节切片。本文说明它与 Cut、LastIndex 的区别、未找到和空分隔符边界,以及返回原切片视图时何时需要 Clone。
-
Go 里可以通过 pprof.Lookup("goroutine") 获取运行时内置的 goroutine profile,再用 WriteTo 将它写入 bytes.Buffer 或文件。本文说明 debug=1 文本、debug=0 协议缓冲区和 debug=2 堆栈格式的区别,并给出错误处理与复用封装。
-
Go 的 http.Cookie.Valid 会在写出 Cookie 前检查名称、值、过期时间、路径、域名以及 Partitioned 与 Secure 的组合约束。本文用可执行示例说明如何读取具体错误、避免 String 的静默降级,并划清 Valid 与浏览器策略的边界。
-
Go 的 textproto.CanonicalMIMEHeaderKey 会把合法 MIME 请求头键名转换成首字母和连字符后字母大写、其余字母小写的形式;本文说明空格和非法字段字节为何原样返回,以及 MIMEHeader 读写与直接 map 访问的边界。
-
使用 image.NewRGBA 创建可修改图像时,先用 image.Rect 明确坐标范围,再通过 SetRGBA 写入像素;需要批量处理时理解 PixOffset 与 Stride,遇到非零原点和 SubImage 也不容易越界。
-
Go gzip.Reader 用 Reset 串行复用,但 Close 不会关闭底层文件,也不能代替读到 EOF;示例区分超限拒绝、尾部校验与逐文件清理。
-
Go 的 archive/zip 会把 ZIP 条目的外部属性保存在 FileHeader.ExternalAttrs 中,但这个 uint32 的含义取决于 CreatorVersion。本文用读取示例说明如何保存原始字段、调用 Mode() 转为 fs.FileMode,并处理平台、目录和符号链接边界。
-
用 Go 标准库 net/mail.ParseAddressList 解析多个收件人,分别读取 Name 与 Address,并用数量、字段和错误三个指标判断地址列表是否可继续进入业务流程。
-
Go 的 net/url.URL.Redacted 只会把 URL.User 中的密码替换为 xxxxx。本文说明如何区分 Userinfo 与查询参数,把脱敏固定到日志出口,并处理解析失败、无密码和 token 参数等边界。
-
在 Go 中用 crypto/rand.Read 生成固定长度的加密安全随机字节,说明切片长度、十六进制与 Base64 编码、错误边界,以及它和 math/rand 的使用区别。
-
Go net.Dialer 用 Timeout 与 DialContext 限制建连等待,多个截止点取较早者;示例解释父级取消、连接关闭,以及 TLS 和读写超时的独立边界。